코딩 테스트/Level 2
[PCCP 기출문제] 2번 / 퍼즐 게임 챌린지
컴닥
2024. 11. 14. 17:04
반응형
https://school.programmers.co.kr/learn/courses/30/lessons/340212
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
음 일단 무식하게 ...
def solution(diffs, times, limit):
level = 1
while True:
play_time = 0
for i in range(len(diffs)):
play_time += times[i] if diffs[i] <= level else (diffs[i] - level) * (times[i] + times[i - 1]) + times[i]
if play_time <= limit:
return level
level += 1
시간제한에 걸려버린다. 이분 검색을 해야...
https://comdoc.tistory.com/entry/32-%EC%9D%B4%EC%A7%84-%EA%B2%80%EC%83%89Binary-Search
32. 이진 검색(Binary Search), 파이썬
정렬된 데이터에서 검색할 때는 이진(이분) 검색이 더 효율적입니다. 친구가 1부터 100까지 숫자 중 하나를 고르고, 나는 그 숫자를 맞추는 게임을 한다고 가정합니다. 친구는 "고른 숫자가 내가
comdoc.tistory.com
def solution(diffs, times, limit):
answer, left, right = 1, 1, 100_000
while left <= right:
level = (left + right) // 2
if sum(times[i] if diffs[i] <= level else (diffs[i] - level) * (times[i] + times[i - 1]) + times[i]
for i, _ in enumerate(diffs)) > limit:
left = level + 1
else:
answer, right = level, level - 1
return answer
테스트 1 〉 통과 (0.01ms, 10MB)
테스트 2 〉 통과 (0.01ms, 10.2MB)
테스트 3 〉 통과 (0.01ms, 10MB)
테스트 4 〉 통과 (0.03ms, 10.4MB)
테스트 5 〉 통과 (0.03ms, 10.2MB)
테스트 6 〉 통과 (0.06ms, 10.2MB)
테스트 7 〉 통과 (0.03ms, 10.1MB)
테스트 8 〉 통과 (4.21ms, 10.2MB)
테스트 9 〉 통과 (4.59ms, 10.3MB)
테스트 10 〉 통과 (2.33ms, 10.4MB)
테스트 11 〉 통과 (3.68ms, 10.4MB)
테스트 12 〉 통과 (3.19ms, 10.3MB)
테스트 13 〉 통과 (3.58ms, 10.4MB)
테스트 14 〉 통과 (4.03ms, 10.4MB)
테스트 15 〉 통과 (1190.52ms, 35.1MB)
테스트 16 〉 통과 (1239.89ms, 34.7MB)
테스트 17 〉 통과 (710.46ms, 34.9MB)
테스트 18 〉 통과 (744.62ms, 34.7MB)
테스트 19 〉 통과 (1688.26ms, 34.1MB)
테스트 20 〉 통과 (881.53ms, 34.8MB)
반응형