Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
🔗 문제 링크
신입사원
✔️ 소요된 시간
30-40M
✨ 수도 코드
문제 요약
어떤 지원자 A의 성적이 다른 어떤 지원자 B의 성적에 비해 서류 심사 결과와 면접 성적 중 하나라도 높다면, 지원자 A는 합격이다. 선발할 수 있는 최대 인원은@?
이번 문제는 풀 가닥이 안 잡혀서 질문게시판 보다가 실마리를 찾고 풀었습니다 허허
5명의 지원자가 있고, 각각의 서류와 면접 성적이 아래와 같은 경우를 생각해보겠습니다.
이 경우, 4번 참가자는 1번 참가자와 비교하여 서류, 면접 순위가 떨어지기 때문에 불합이고, 5번 참가자도 다른 참가자와 비교하여 서류, 면접 순위가 떨어지기에 불합입니다.
그러니까,
지원자 A는 어떤 B보다 하나라도 순위가 높으면 합격입니다.
일단 완전 탐색을 생각해보면,
N = 100000이고 시간 복잡도는 O(N^2)니까, 시간 제한이 2초라 당연히 시간 초과가 나옵니다.
저는 여기서 풀 아이디어가 안 나와서 질문 게시판 보다가 실마리를 찾았습니다.. 허허
일단 먼저, 서류 점수 기준으로 정렬을 해줍니다.
이제, 면접 점수를 통해서 몇 명이 합격할 수 있는지 보겠습니다.
먼저, 서류 1등인 사람은 무조건 합격입니다.
그리고
top rank(면접)
를 서류 1등인 사람의 면접 등수로 설정합니다.다음은 서류 2등인 사람입니다.
서류 2등인 사람은 이때까지 나온 면접 등수보다 높으면 합격입니다.
top rank(면접)
=서류 1등의 면접(4)
>서류 2등의 면접(2)
이므로 합격입니다.그리고
top rank(면접)
= 2로 바꿔줍니다.다음은 서류 3등인 사람입니다.
마찬가지로,
top rank(면접) = 서류 2등의 면접(2) < 서류 3등의 면접(3) 이므로 탈락입니다.
즉, 서류 점수가
i 순위
인 사람은 면접 등수가서류
1 ~ i-1 순위
인 사람보다 낮으면 합격입니다.질문 게시판 빨리 안봤으면 그리디인줄 모르고 시간만 흘려보냈을 것 같네요 ,,,
그리디 문제는 항상 그리디로 접근해야겠다! 라는 게 안 와닿ㄷ는 것 같아요
어케 알지 ..? 😭 풀고보니 그리디인걸까효..?
📚 새롭게 알게된 내용