백준1946(파이썬) - 신입사원
resilient
·2021. 5. 22. 17:05
728x90
반응형
https://www.acmicpc.net/problem/1946
- 이 문제는 문제를 정말 잘 읽어야 한다. 주어지는 값이 순위인데 나는 점수로 착각해서 계속 삽질했다.
- 그 다음은 그리디라는 점을 알았고, 정렬을 해줘야겠다고 판단했다. 일단 서류점수 기준으로 정렬을 해줬다.
- 서류점수가 1등이면 무조건 뽑히니까 cnt를 1로 해놓고, 그 다음 서류점수로 정렬된 데이터에서 면접 점수를 for문을 돌려주면서 면접 점수 등수가 i 보다 i+1 이 높으면 그 참가자 또한 뽑힌다고 생각했다.
- 코드는 다음과 같다.
import sys
input = sys.stdin.readline
t = int(input())
for _ in range(t):
n = int(input())
cnt = 1
data = []
for i in range(n):
a,b = map(int,input().split())
data.append([a,b])
data.sort(key=lambda x:x[0])
max_people_idx = data[0][1]
# 문제 잘읽기... 순위다........
for i in range(n):
# data[i][0]로 정렬해서 for문으로 돌린다는거 자체가 i+1 번째 사람은 얼마든지 떨어질수있다.
# 근데 면접점수 data[i][1]값이 비교되는 대상보다 작게되면 살아남는 것이다.
if max_people_idx > data[i][1]:
cnt+=1
max_people_idx = data[i][1]
print(cnt)
반응형
'자료구조 & 알고리즘 > 백준(Baekjoon)' 카테고리의 다른 글
백준1926(파이썬) - 그림 (0) | 2021.05.24 |
---|---|
백준2468(파이썬) - 안전영역 (0) | 2021.05.23 |
백준2156(파이썬) - 포도주 시식 (0) | 2021.05.22 |
백준1041(파이썬) - 주사위 (0) | 2021.05.22 |
백준2667(파이썬) - 단지번호붙이기 (0) | 2021.05.21 |