[프로그래머스] 체육복 - 자바스크립트 JS

2022. 6. 3. 00:32알고리즘/프로그래머스

반응형

 [Level1] 코딩테스트 연습 - 탐욕법(Greedy) -  체육복

 

문제링크 : 체육복

 

코딩테스트 연습 - 체육복

점심시간에 도둑이 들어, 일부 학생이 체육복을 도난당했습니다. 다행히 여벌 체육복이 있는 학생이 이들에게 체육복을 빌려주려 합니다. 학생들의 번호는 체격 순으로 매겨져 있어, 바로 앞번

programmers.co.kr


문제풀이

가장 먼저 체크할 부분은 이 부분입니다.

여벌 체육복을 가져온 학생이 체육복을 도난당했을 수 있습니다. 이때 이 학생은 체육복을 하나만 도난당했다고 가정하며, 남은 체육복이 하나이기에 다른 학생에게는 체육복을 빌려줄 수 없습니다.

 

여분의 체육복을 가지고 있고 도난당한 교육생을 제외하기 위해서

lostreserve교집합을 제거하고 시작합니다.

 

이후 교집합을 제거한 lostreserve에서 내부 정렬 작업이 필요합니다.

 

lost에 있는 교육생 값의 -1, +1 값을  reserve에서 체크를 진행합니다.

 

빌려줄 수 있는 상황이라면 reserve 갱신하며 인원을 카운트 합니다.

 

정답은 [총 인원 - 교집합을 제거한 lost 인원 + 빌려준 횟수]입니다.

 

풀이 코드

[JavaScript]체육복

 

가장 인기많은 답변 (But 틀린답변)

Most liked code

  • 틀린점은 여분의 체육복을 가지고 있고 도난당한 교육생을 먼저 제외하지 못한다는 점입니다.
  • 하지만 코드가 매우 함축적이고 Math.abs를 사용한 점에서 배울만한 요소는 충분이 있습니다.
반응형