AI 공부 도전기

[Baekjoon] 1946번 : 신입 사원 (Python, 정렬)

 

     

 

 

https://www.acmicpc.net/problem/1946

 

1946번: 신입 사원

첫째 줄에는 테스트 케이스의 개수 T(1 ≤ T ≤ 20)가 주어진다. 각 테스트 케이스의 첫째 줄에 지원자의 숫자 N(1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개 줄에는 각각의 지원자의 서류심사 성

www.acmicpc.net

 

코드 링크

https://github.com/stellaluminary/Baekjoon

 

GitHub - stellaluminary/Baekjoon

Contribute to stellaluminary/Baekjoon development by creating an account on GitHub.

github.com

 

Python

 

방법 1 - 메모리 69964KB / 시간 6804ms / 코드 길이 330B

 

예제 1

지원자1 : (서류심사 성적 : 3등 , 면접심사 성적 : 2등)  
지원자2 : (서류심사 성적 : 1등 , 면접심사 성적 : 4등)

지원자3 : (서류심사 성적 : 4등 , 면접심사 성적 : 1등)
지원자4 : (서류심사 성적 : 2등 , 면접심사 성적 : 3등)
지원자5 : (서류심사 성적 : 5등 , 면접심사 성적 : 5등)

 

정렬 시

 

지원자2 : (서류심사 성적 : 1등 , 면접심사 성적 : 4등) 

지원자4 : (서류심사 성적 : 2등 , 면접심사 성적 : 3등)

지원자1 : (서류심사 성적 : 3등 , 면접심사 성적 : 2등)

지원자3 : (서류심사 성적 : 4등 , 면접심사 성적 : 1등)
지원자5 : (서류심사 성적 : 5등 , 면접심사 성적 : 5등)

 

서류심사 성적이 이미 성적 순으로 진행되었고 여기서 면접심사 성적이 좋은 경우를 지속해서 찾아 counting한다.

 

import sys
input = sys.stdin.readline

for i in range(int(input())):
    n = int(input())
    score = [list(map(int, input().split())) for _ in range(n)]
    score.sort()
    min_r = score[0][1]
    cnt = 1

    for i in range(n):
        if score[i][1] < min_r:
            cnt += 1
            min_r = score[i][1]
    print(cnt)

 

공유하기

facebook twitter kakaoTalk kakaostory naver band
loading