일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 데이터베이스
- BFS
- 최소스패닝트리
- SQL
- 장고
- Bellman-Ford
- 함밥
- 마라마라빔
- 알고리즘
- 모각코
- programmers
- 동적계획법
- django
- 백준
- 실습
- MyPlaylist
- 종합설계
- 파이썬
- 백트래킹
- minimum spanning tree
- 코드트리
- B대면노래방
- 프로그래머스
- Planned
- DP
- codetree
- Kruskal
- 그리디알고리즘
- 소프트웨어공학
- DFS
Archives
- Today
- Total
Leta Learns
[Python] 백준 1946번 - 신입 사원 본문
문제 https://www.acmicpc.net/problem/1946
1700번에 비하면 쉬운 문제였다. (실버1)
순위를 입력받는 거라서 1이 좋은 건데 처음에 5가 좋은 거라고 착각했다.
문제 다시 읽어보다가 깨닫고 수정했다.
람다를 이용해서 서류 순위, 면접 순위 기준으로 다중 정렬을 했는데,
동석차가 없으니 서류 기준으로만 정렬하고 서류 1위면 일단 채용한다. (cnt = 1)
서류 1위의 면접 순위를 first 변수에 넣고 for문을 돌려서 면접 순위를 비교하였다.
서류 기준으로 정렬되어 있으므로 앞 사람 보다 면접 순위가 좋아야 선발될 수 있다.
선발될 수 있는 경우 cnt +=1 을 하고
마지막으로 cnt를 프린트해주면 끝.
import sys
input = sys.stdin.readline
t = int(input())
for _ in range(t):
n = int(input())
rank = [list(map(int, input().split())) for _ in range(n)]
rank.sort()
cnt = 1 #서류 1위면 일단 채용
first = rank[0][1] #1위
for i in range(1, n):
if first > rank[i][1]:
first = rank[i][1]
cnt += 1
print(cnt)
'Coding > 백준' 카테고리의 다른 글
[Python] 백준 3649번 - 로봇 프로젝트 (0) | 2022.02.18 |
---|---|
[Python] 백준 1205번 - 등수 구하기 (0) | 2022.02.18 |
[Python] 백준 1700번 - 멀티탭 스케줄링 (0) | 2022.02.15 |
[Python] 백준 2529번 - 부등호 (0) | 2022.02.14 |
[Python] 백준 1987번 - 알파벳 (0) | 2022.02.14 |
Comments