D+1 귤 고르기 js

초록귤·2024년 11월 24일
0

100일프로젝트

목록 보기
1/16
post-thumbnail

프로그래머스 코테 풀기 귤 고르기

포인트

  • forEach: 배열의 각 요소에 대해 주어진 함수를 실행합니다. 주로 부수 효과(side effects)를 위한 목적으로 사용됩니다. 예를 들어, 배열의 각 요소를 콘솔에 출력하거나 외부 상태를 변경하는 데 사용합니다.
  • map: 배열의 각 요소에 대해 주어진 함수를 호출하고, 그 결과로 새로운 배열을 생성합니다. 주로 배열의 변환을 위해 사용됩니다.
    중단 가능성
  • forEach: 반복을 중단할 수 없습니다. 모든 요소를 처리해야 합니다.
  • map: 모든 요소를 처리해야 하므로 중단할 수 없습니다. 하지만 map은 변환된 결과를 반환하기 때문에 중단할 필요가 없습니다.
    성능
  • forEach: 단순히 요소를 반복하는 데 최적화되어 있습니다.
  • map: 새로운 배열을 생성하는 데 추가적인 메모리와 시간이 필요합니다.
    수정한점
  • 배열의 마지막인 경우, 다음 index 미존재로 return이 안되는 경우가 발생했다. 현재 차례에서 계산한 값이 조건을 만족하는지로 수정해주었다.
function solution(k, tangerine) {
    let tDict = {};
    let sum=0;
    tangerine.forEach((t) => (tDict[t] = (tDict[t] || 0) + 1));
    const tArr = Object.values(tDict).sort((a, b) => b - a);
    for(i=0; i<tArr.length; i++){
        sum += tArr[i]
        if(sum >= k) return i+1
    }
}
profile
초록색 귤이 노랑색으로 익어가듯, 실력이 익어가기 위해 노력하는 개발자 lahee입니다.

0개의 댓글