백준|1946번|신입 사원

README·2022년 7월 31일
0

파이썬 PS풀이

목록 보기
36/136

문제설명
각 지원자들의 서류점수와 면접점수의 등수를 입력받고 나서 서류점수와 면접점수 둘 중 하나라도 남들보다 떨어지지 않는 사람들의 수를 구하는 문제입니다.(A라는 사람의 서류점수와 면접점수가 각각 4, 4일때 다른 사람이 3, 3인 경우 탈락이고 3, 5인 경우 탈락하지 않습니다.)

작동 순서
1. 각 지원자들의 서류점수와 면접점수의 등수를 입력받습니다.
2. 각 지원자들의 등수를 서류점수의 등수를 기준으로 정렬합니다.
3. 서류점수가 가장 높은 사람의 면접점수를 UppersTest2Min으로 지정합니다.
4. 반복문을 이용하여 서류점수가 높은 사람부터 그 사람위에 자신보다 면접점수가 높은 사람이 있는지 비교합니다.
5. 만약 자신보다 면접점수가 높은 사람이 있는 경우 탈락이고 자신의 면접점수가 더 높은 경우 자신의 면접점수가 UpperTest2Min으로 지정됩니다.
6. 모든 비교가 끝난뒤 (총 지원자의 수-탈락자의 수)를 출력합니다.

소스코드

import sys
T = int(sys.stdin.readline())
for Case in range(T):
    N = int(sys.stdin.readline())
    Applicant = []
    fail = 0
    for i in range(N):
        Applicant.append(list(map(int, sys.stdin.readline().split())))
    Applicant.sort()
    UppersTest2Min = Applicant[0][1]
    for i in range(1, N):
        if UppersTest2Min < Applicant[i][1]:
            fail += 1
        else:
            UppersTest2Min = Applicant[i][1]
    print(N-fail)

후기
나름 열심히해서 풀어보았고 정답을 맞추기는 했지만 다른 사람들의 코드를 보니 확실히 비교가 되는 것 같습니다. 앞으로 더 열심히 공부해야 할 것 같습니다.

profile
INTP 개발자 지망생

0개의 댓글