IF문 좀 대신 써줘
시간초과 코드
from sys import stdin
N, M = map(int, stdin.readline().strip().split())
powers = []
titles = []
for _ in range(N):
title, power = map(str, stdin.readline().strip().split())
power = int(power)
powers.append(power)
titles.append(title)
for _ in range(M):
userPower = int(stdin.readline().strip())
for idx in range(len(powers)):
if userPower <= powers[idx]:
print(titles[idx])
break
성공 코드
from sys import stdin
N, M = map(int, stdin.readline().strip().split())
powers = []
for _ in range(N):
title, power = map(str, stdin.readline().strip().split())
powers.append([title, int(power)])
powers.sort(key=lambda x: x[1]) # 오름차순 정렬
for _ in range(M):
power = int(stdin.readline().strip())
start = 0
end = len(powers)-1
while start <= end:
mid = (start+end) // 2
if power > powers[mid][1]:
start = mid + 1
else:
end = mid - 1
print(powers[start][0])
728x90
'Algorithm&CodingTest > Baekjoon' 카테고리의 다른 글
[Baekjoon][2206] 골드3 벽 부수고 이동하기 - Python (0) | 2024.10.08 |
---|---|
[Beakjoon][7576] 골드5 - 토마토 Python (0) | 2024.10.07 |
[Baekjoon] [20310] 실버3 - 타노스 Python (0) | 2024.05.05 |
[Baekjoon] [21921] 실버3 - 블로그 Python (1) | 2024.01.31 |
[Baekjoon] [20920] 실버3 영단어 암기는 괴로워 Python (0) | 2024.01.29 |