단순히 풀면 효율성 탈락..
한번에 음식을 없애고 그만큼의 시간을 감소시키는 방법을 썼다.
이런 생각을 어떻게 하지
def solution(food_times, k):
# food_times를 value 오름차순 후 index 오름차순
times = sorted(enumerate(food_times), key=lambda k:(k[1], k[0]))
before = 0
length = len(times)
for i, v in enumerate(times):
diff_v = v[1] - before
diff_l = length - i
if diff_v != 0:
past_time = diff_v * diff_l
if k >= past_time:
k -= past_time
before = v[1]
else:
times = sorted(times[i:])
print(times)
return times[k % diff_l][0] + 1
return -1
print(solution([3,5,1,6,5,3], 20)) # 4
print(solution([3, 1, 2], 5)) # 1
print(solution([6,4,5,5,3,4], 20)) # 3
print(solution([2,2,2],4)) # 2
print(solution([1],10)) # -1
출처 https://www.welcomekakao.com/learn/courses/30/lessons/42891
풀이 출처 https://www.youtube.com/watch?v=4MWxAt4fx5I&list=PL3-B256rKFGF72fjZDH66mC5HdpUlLy4p&index=4
'알고리즘 문제' 카테고리의 다른 글
2018 카카오 블라인드 코딩 테스트 1차 길 찾기 게임 (0) | 2019.09.07 |
---|---|
2018 카카오 블라인드 코딩 테스트 1차 실패율 (0) | 2019.09.04 |
2018 카카오 블라인드 코딩 테스트 1차 오픈채팅방 (0) | 2019.09.04 |
프로그래머스 단어 변환 (0) | 2019.09.03 |
프로그래머스 네트워크 (0) | 2019.09.02 |