본문 바로가기
알고리즘/그리디 알고리즘

백준 1946번 : 신입 사원 java

by LDY3838 2022. 8. 1.
반응형

이 문제는 정렬을 이용하여 신입 사원을 뽑는 문제입니다.

이 문제에서 신입 사원을 뽑는 기준은 서류, 면접 등수가 둘 다 다른 지원자보다 낮은 사람은 뽑지 않는 것입니다.

이때 신입 사원이 되기 위해서는 서류, 면접 등수 중 하나는 다른 지원자보다 높아야 합니다.

이를 판별하기 위하여 둘 중 하나를 기준으로 정렬한 후 다른 전형을 비교합니다.

위의 예제 1번에서 테스트 케이스 1번을 기준으로 예시를 들어드리겠습니다.

위의 테스트 케이스 1번은 다음과 같이 나타낼 수 있습니다.

이때 서류의 등수를 기준으로 정렬하겠습니다.

그럼 위의 그림과 같이 정렬됩니다.

그럼 이제 신입 사원을 뽑아보도록 하겠습니다.

서류 전형의 1등인 사람은 다른 사람보다 두 전형의 등수가 낮을 수 없기 때문에 자연스럽게 채용됩니다.

채용이 완료된 사람은 빨간 테두리로 표시하겠습니다.

그리고 이 사람 이후 신입 사원으로 채용되기 위해서는 서류 전형의 점수가 위의 사람보다 낮으니 면접 전형의 등수가 위의 사람보다 높아야 합니다.

따라서 바로 직전 합격자의 면접 등수를 standard 변수에 저장한 후 이 등수보다 낮은 등수를 가진 사람들은 채용하지 않습니다.

서류 점수가 2등인 사람의 면접 등수가 3등이니 standard보다 높습니다.

따라서 신입 사원으로 채용하고 standard를 3등으로 바꾸어줍니다.

서류 점수가 3등인 사람도 마찬가지입니다.

그리고 마지막 서류 점수가 5등인 사람은 면접 등수가 5등이어서 이전 합격자보다 면접 등수가 낮기 때문에 채용되지 못합니다.

따라서 이 테스트 케이스에서 채용 인원의 수는 4명입니다.

반응형

댓글