[프로그래머스] 귤 고르기 / JavaScript / Level 2

KimYoungWoong·2022년 11월 27일
0

Programmers

목록 보기
32/60
post-thumbnail

🚩문제 주소


📄풀이


해시

Map으로 귤 번호와 양을 저장합니다.

const mapToArray = [...map].sort((a, b) => b[1] - a[1]);

Map을 스프레드 연산자를 이용해서 배열로 바꿔준 후에 개수가 큰 순서대로 정렬을 합니다.

k가 0보다 크다면 k에서 개수를 빼주고 정답을 +1 합니다.
그런데 k가 0과 같거나 작아졌다면 반복을 종료합니다.

정답을 반환합니다.



👨‍💻코드


const solution = (k, tangerine) => {
  let answer = 0;
  const map = new Map();
  tangerine.forEach((v) => {
    if (map.has(v)) {
      let val = map.get(v);
      val++;
      map.set(v, val);
    } else {
      map.set(v, 1);
    }
  });

  const mapToArray = [...map].sort((a, b) => b[1] - a[1]);
  for (const [key, value] of mapToArray) {
    if (k >= 0) {
      k -= value;
      answer++;
      if (k <= 0) {
        break;
      }
    }
  }

  return answer;
};

profile
블로그 이전했습니다!! https://highero.tistory.com

0개의 댓글