티스토리 뷰
728x90
https://www.acmicpc.net/problem/1946
- 해설 :
진영이네 회사에 신입사원을 뽑는다고 한다.
지원자들 중 다른 모든 지원자와 비교했을 때 서류심사 성적과 면접시험 성적 중 적어도 하나가 다른 지원자보다 떨어지지 않는 자만 선발한다는 원칙을 세웠다. 즉, 어떤 지원자 A의 성적이 다른 어떤 지원자 B의 성적에 비해 서류 심사 결과와 면접 성적이 모두 떨어진다면 A는 결코 선발되지 않는다.
이 때, 뽑을 수 있는 최고 지원자의 수를 구하는 문제이다.
- 풀이 :
그리디한 방법으로 해결할 수 있다. 최소 등수를 가진 사람을 매번 갱신하고, 최솟값보다 큰 등수인 사람일 경우에만 카운트 해준다.
- 소스코드 :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
import sys
input = sys.stdin.readline
t = int(input())
for i in range(t):
n = int(input())
s = [0 for i in range(n + 1)]
for j in range(n):
a, b = map(int, input().split())
s[a] = b
min_n = s[1]
cnt = 0
for k in range(2, n + 1):
if s[k] > min_n:
cnt += 1
else:
min_n = s[k]
print(n - cnt)
|
cs |
320x100
'Algorithm > Greedy' 카테고리의 다른 글
(Python) - BOJ(2785번) : 체인 (0) | 2022.02.01 |
---|---|
(Python) - BOJ(2217번) : 로프 (0) | 2022.01.30 |
(Python) - BOJ(1931번) : 회의실 배정 (0) | 2022.01.28 |
(Python) - BOJ(1817번) : 짐 챙기는 숌 (0) | 2022.01.28 |
(Python) - BOJ(1783번) : 병든 나이트 (0) | 2022.01.28 |
댓글
© 2022 WonSeok, All rights reserved