728x90
https://www.acmicpc.net/problem/1946
1946번: 신입 사원
첫째 줄에는 테스트 케이스의 개수 T(1 ≤ T ≤ 20)가 주어진다. 각 테스트 케이스의 첫째 줄에 지원자의 숫자 N(1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개 줄에는 각각의 지원자의 서류심사 성
www.acmicpc.net
import sys
T = int(input())
for i in range(0,T):
Cnt = 1
people = []
N = int(input())
for i in range(N):
doc, Interview = map(int,sys.stdin.readline().split())
people.append([doc, Interview])
people.sort()
Max = people[0][1]
for i in range(1,N):
if Max > people[i][1]:
Cnt += 1
Max = people[i][1]
print(Cnt)
✔ 풀이 과정
- 일단 서류심사 성적을 기준으로 오름차순 정렬을 한다. (서류심사 성적이 더 높은 경우는 면접시험 성적 고려 X)
- 지원자 i가 선발되기 위해서는 자신보다 서류심사 성적이 좋은 사람보다 면접심사 성적이 좋아야 한다. 비교 대상으로 서류심사 성적이 1위인 사람을 두고, 차례로 면접심사 성적을 비교하다가 i의 면접심사 성적이 높다면 카운트를 증가시키고 비교 대상을 현재 값으로 바꿔준다.
✔ input()을 사용했다가 시간초과가 떠서 sys.stdin.readline()을 이용해 해결했다.
728x90
반응형
'알고리즘' 카테고리의 다른 글
[BOJ/Python3(파이썬)] 백준 2217번: 로프 (0) | 2021.12.22 |
---|---|
[BOJ/Python3(파이썬)] 백준 2839번: 설탕 배달 (0) | 2021.12.22 |
[BOJ/Python3(파이썬)] 백준 10162번: 전자레인지 (0) | 2021.12.22 |
[BOJ/Python3(파이썬)] 백준 11721번: 열개씩 끊어 출력하기 (0) | 2021.12.20 |
[BOJ/Python3(파이썬)] 백준 11718번: 그대로 출력하기 (0) | 2021.12.20 |