미소를뿌리는감자의 코딩
[백준 2024/02/23] 1946번 신입 사원 본문
https://www.acmicpc.net/problem/1946
1. 접근 방법
다른 이보다, 2가지의 평가 기준 모두 떨어지는 이는 탈락하게 된다.
그랬을 때, 합격 인원 수를 구하는 것이 이번 문제의 목표이다.
이 문제를 예로 들어서 설명을 해볼 것이다.
2개의 입력 중에서 7개의 지원자를 가지는 예시를 가지고 설명을 해볼 것이다.
[[3, 6], [7, 3], [4, 2], [1, 4], [5, 7], [2, 5], [6, 1]]
[[1, 4], [2, 5], [3, 6], [4, 2], [5, 7], [6, 1], [7, 3]]
7개의 input에 대해서 list로 정리를 해주었다.
이후 .sort()를 통해서, 서류 시험 결과를 기준으로 정리해주었다.
이후 가장 높은 Interview_rank를 기억해주면서, 앞에서 부터 뒤로 정렬된 리스트를 읽어나갈 것이다.
서류상으로 이미 정렬된 리스트이기 때문에, 앞 지원자에서 나온 면접 순위보다 뒤 면접자에서 나온 면접 순위가 낮다면, 해당 지원자는 서류에서도, 면접에서도 낮은 순위를 가지게 되기 때문에, 해당 지원자는 통과할 수 없게 되는 것이다.
이를 하나씩 비교해가면서 더 이해를 해보자.
highest_rank 는 가장 낮은 순위인 보다 하나 더 큰 8 등을 저장해 두었다.
[서류 순위, 면접 순위] 로 저장이 되어 있다.
[1, 4] 에서 4는 현재 저장되어 있는 highest_rank 보다 높은 순위를 가지므로 highest_rank를 갱신해준다. ( highest_rank = 4)
다음으로 넘어가서
[2, 5] 이는 현재 highest_rank 인 4 보다 낮은 순위인 5를 가지고 있다. 즉, 서류에서도 앞에 있는 이보다 낮은데, 면접도 낮은 순위를 가지므로 해당 면접자는 통과할 수 없다.
다음으로,
[3, 6] 해당 면접자도 현재 highest_rank 인 4 보다 낮은 순위인 6을 가지므로, 통과할 수 없다.
다음으로,
[4, 2] 해당 면접자는 현재 highest_rank 보다 높은 순위인 2 를 가지고 있다. 따라서 highest_rank 는 2로 갱신된다.
다음으로,
[5, 7] 해당 면접자는 현재 highest_rank 인 2 보다 낮은 면접 순위 7을 지니므로 통과할 수 없다.
다음으로,
[6, 1] 해당 면접자는 현재 highest_rank 인 1 보다 높은 면접 순위를 가지므로 통과할 수 있다. 또한 highest_rank는 1로 갱신된다.
마지막으로,
[7, 3] 의 경우, 현재 highest_rank인 1보다 낮은 순위를 가지므로 통과할 수 없다.
이런식으로 풀어주었다.
2. 코드
def passed_num(total):
passed = len(total)
highest_interview_rank = len(total) + 1
for paper, interview_rank in total:
if highest_interview_rank < interview_rank:
passed -= 1
continue
highest_interview_rank = interview_rank
return passed
def save_opponents_information():
total = []
for i in range(int(input())):
total.append(list(map(int, input().split())))
total.sort()
return total
def main():
for i in range(int(input())):
total = save_opponents_information()
print(passed_num(total))
if __name__ == "__main__":
main()
'코딩 테스트 > 백준' 카테고리의 다른 글
[백준 2024/02/23] 13305번 주유소 (0) | 2024.02.23 |
---|---|
[백준 2024/02/23] 11399번 ATM - python ver. (0) | 2024.02.23 |
[백준 2024/02/22] 1002번 터렛 - python ver. (0) | 2024.02.22 |
[백준 2024/02/22] 5052번 전화번호 목록 (1) | 2024.02.22 |
[백준 2024/02/22] 2108번 통계학 (0) | 2024.02.22 |