alpyrithm_알파이리즘
[알고리즘][Python] 백준(BOJ) 1946 신입 사원_파이썬 본문
1946 신입 사원 https://www.acmicpc.net/problem/1946
문제 풀기 전 공부할 것 : python 입출력 방법(sys.stdin.readline)
풀이 1
<내용>
- 서류 등수를 기준으로 먼저 정렬
- 정렬된 지원자는 본인 앞에 위치한 지원자들을 interview 성적들 중 가장 좋은 성적이면(숫자가 가장 작으면) 선발된다.
- 시간초과가 될 수 있으므로 import sys를 사용한다.
<코드>
import sys
input = sys.stdin.readline
t = int(input())
for _ in range(t):
n = int(input())
cv = [list(map(int, input().split())) for _ in range(n)]
cv.sort(key = lambda x : x[0])
interview = [cv[i][1] for i in range(n)]
res = 1 # cv[0]이 서류 등수가 1등이므로 면접 등수는 관계없이 선발 가능하다.
grade = interview[0]
for i in range(1, n):
grade = min(grade, interview[i])
if grade == interview[i]:
res += 1
print(res)
+) interview라는 리스트를 굳이 만들지 않아도 됨
풀이 2
<내용>
- interview라는 리스트를 따로 만들지 않고 cv에서 해결함
- 방법은 풀이1과 동일
<코드>
import sys
input = sys.stdin.readline
t = int(input())
for _ in range(t):
n = int(input())
cv = [list(map(int, input().split())) for _ in range(n)]
cv.sort(key = lambda x : x[0])
res = 1
grade = cv[0][1]
for i in range(1, n):
grade = min(grade, cv[i][1])
if grade == cv[i][1]:
res += 1
print(res)
728x90
반응형
'Algorithm > 백준 알고리즘_Python' 카테고리의 다른 글
[알고리즘][Python] 백준(BOJ) 1205 등수 구하기_파이썬 (0) | 2020.08.15 |
---|---|
[알고리즘][Python] 백준(BOJ) 1449 수리공 항승_파이썬 (0) | 2020.08.14 |
[알고리즘][Python] 백준(BOJ) 8979 올림픽_파이썬 (0) | 2020.08.07 |
[알고리즘][Python] 백준(BOJ) 2816 디지털 티비_파이썬 (0) | 2020.08.05 |
[알고리즘][Python] 백준(BOJ) 2621 카드게임_파이썬 (0) | 2020.08.04 |
Comments