[프로그래머스] 인사고과

adultlee·2023년 6월 13일
0

프로그래머스 3단계

목록 보기
31/39
post-custom-banner

문제 링크

프로그래머스 문제

풀이

이전에 풀었던 문제지만 다시 푸니 못풀었던 문제였습니다.

중요한 키 포인트는 정렬을 다음과 같이 만들어 내는것입니다.


같은 앞자리 수인경우 뒷자리 수는 오름차순으로 정렬하는 것이 포인트 이며,
같은 점수에서는 뒷자리 수를 초기화 하더라도 사라지지 않지만,
그 다음 앞자리가 바뀌게 되면 당연히 그 전 가장 높은 값보다 낮아지기 때문에, 이때는 제거해주어야 하는 점을 고려합니다.

사용한 테스트 케이스는 다음과 같습니다

코드

function solution(scores) {
  let answer = 1;
  const target = scores[0];

  scores.sort((a, b) => {
    if (a[0] !== b[0]) return b[0] - a[0];
    return a[1] - b[1]; // 여기가 키포인트다.
  });

    
  let yMax = 0;
  for (let i=0; i< scores.length; i++) {
      const [curX , curY] = scores[i]
    if (target[0] < curX && target[1] < curY) return -1;

    if (yMax <= curY) {
      if (target[0] + target[1] < curX + curY){

          answer++;
      } 
      yMax = curY;
    }
  }
  return answer;
}
post-custom-banner

0개의 댓글