문제
1946번: 신입 사원
첫째 줄에는 테스트 케이스의 개수 T(1 ≤ T ≤ 20)가 주어진다. 각 테스트 케이스의 첫째 줄에 지원자의 숫자 N(1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개 줄에는 각각의 지원자의 서류심사 성
www.acmicpc.net
입력
- 첫째 줄에는 테스트 케이스의 개수 T(1 ≤ T ≤ 20)가 주어진다. 각 테스트 케이스의 첫째 줄에 지원자의 숫자 N(1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개 줄에는 각각의 지원자의 서류심사 성적, 면접 성적의 순위가 공백을 사이에 두고 한 줄에 주어진다. 두 성적 순위는 모두 1위부터 N위까지 동석차 없이 결정된다고 가정한다.
출력
- 각 테스트 케이스에 대해서 진영 주식회사가 선발할 수 있는 신입사원의 최대 인원수를 한 줄에 하나씩 출력한다.
입력 예제
2
5
3 2
1 4
4 1
2 3
5 5
7
3 6
7 3
4 2
1 4
5 7
2 5
6 1
출력 예제
4
3
문제 풀이
- 서류심사나, 면접 순으로 정렬
- 그 후, 서류심사 순으로 정렬했다면 면접순위를 비교하여 면접순위가 더 높다면 카운트
- 최종 채용 수 출력
코드
import sys
input = sys.stdin.readline
for tc in range(int(input())):
array = []
for applicant in range(int(input())):
a, b = map(int,input().split())
array.append((a, b))
array.sort(key=lambda x:(x[0], x[1]))
cnt = 1
y = array[0][1]
for i in range(1, len(array)):
if y > array[i][1]:
cnt += 1
y = array[i][1]
print(cnt)'Algorithm > Greedy' 카테고리의 다른 글
| [Python] 백준 16953번 A -> B (0) | 2023.03.24 |
|---|---|
| [Python] 백준 10610번 30 (0) | 2023.03.24 |
| [Python] 볼링공 고르기 (0) | 2023.01.16 |
| [Python] 만들 수 없는 금액 (0) | 2023.01.16 |
| [Python] 문자열 뒤집기 (0) | 2023.01.10 |