Skip to content

Conversation

@gayoung0619
Copy link
Member

@gayoung0619 gayoung0619 commented Jan 2, 2023

[완주하지 못한 선수]

  1. 문제 이해

    참여한선수 participant와 완주한 선수completion을 비교해서 완주하지 못한 선수의 이름을 return해야된다. 즉, participant와 completion를 비교해서 completion에 없는배열값을 return

  2. 해결방법

    participant.sort(); completion.sort();

    예)

    참여명단: [6,2,4,5].sort() → [2,4,5,6]

    완주명단: [6,4,5].sort() → [4,5,6]

    for문 안에서 [2,4,5,6] 과 [4,5,6]을 비교한 후 다른 숫자를 반환

    → 2와4를 비교한 후 다르니까 2를 반환

    • sort를 이용해 배열을 정렬 한 후 for문을 돌면서 완주하지 못한 참가자를 return
    • 마라톤을 완주하지 못한 선수는 단 한명이기 때문에 조건문으로 두 배열의 이름이 같은지를 비교하고 다르다면 바로 해당 이름을 리턴하며 반복문을 종료.

[포켓몬]

  1. 문제이해

    배열이 있고 포켓몬을 배열개수의 반을 가지고 데리고 갈 수 있다. 근데 중복된 종류의 포켓몬이 있다면 한마리만 데리고 갈 수 있음.
    예) [3,3,3,2,2,2] → 6 / 2 = 3 세마리를 데리고 갈 수 있지만 총 두종류 밖에 없으니까 두마리만 데리고 갈 수 있음

  2. 해결방법

    • 중복값 제거 set

    const set = new Set([1,2,3,1,1]);

    • 데리고 갈 수 있는 포켓몬의 최대값

    nums.length / 2;

  3. 실패코드

    function solution(nums) {
    	const set = new Set(nums);
    	const choice = nums.length / 2;
    	return set.length > choice? choice : set.length
    }
  • 실패이유: set을 사용할땐 length로 길이 체크를 하는 것이 아니라 size로 해야된다.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants