1. 무지의 먹방 라이브
- 난이도
- 하 (??하???)
- 풀이 시간
- 30분
- 시간 제한
- 1초
- 메모리 제한
- 128 MB
- 출처
- 하 (??하???)
- 30분
- 1초
- 128 MB
코딩테스트 연습 - 무지의 먹방 라이브 | 프로그래머스 (programmers.co.kr)
A. 문제
위 프로그래머스 사이트에 접속하여 문제를 확인해주세요.
B. 내 답안
a. 1차 시도 (실패)
못풀었다... 나중에 복습할때 다시 풀어보고 올려야지..
b. 2차 시도 (성공 - 21.09.14)
def solution(food_times, k):
foods = [[food_times[i], i + 1] for i in range(len(food_times))]
foods.sort()
food_len = len(food_times)
pre_food_time = 0
for i, food in enumerate(foods):
now_food_time = food[0]
diff = now_food_time - pre_food_time
if diff > 0:
spend = diff * food_len
if spend <= k:
k -= spend
pre_food_time = now_food_time
elif spend > k:
k %= food_len
answer = sorted(foods[i:], key=lambda x: x[1])
# print(spend, k)
return answer[k][1]
food_len -= 1
return -1
c. 회고
내 풀이
- 시간이 지날때마다 1번 음식부터 1초씩 사라지므로 단순하게 food_times로 for문을 돌렸다. 그랬더니, 12점 받았다.
반성
- 정렬을 생각했으나, 다시 원복시키는 방법이 떠오르지 않아서 하지 못했다.
결론
- 그림을 그려보자.. 그림을 그려보면 문제를 풀다가 잊혀지는 조건이나 패턴들이 보인다.
C. 문제 해설
이해한 내용을 바탕으로 작성했습니다.
문제 해석
알고리즘 로직
a. 책 답안
못풀었다... 나중에 복습할때 다시 풀어보고 올려야지..
b. 2차 시도 (성공 - 21.09.14)
def solution(food_times, k):
foods = [[food_times[i], i + 1] for i in range(len(food_times))]
foods.sort()
food_len = len(food_times)
pre_food_time = 0
for i, food in enumerate(foods):
now_food_time = food[0]
diff = now_food_time - pre_food_time
if diff > 0:
spend = diff * food_len
if spend <= k:
k -= spend
pre_food_time = now_food_time
elif spend > k:
k %= food_len
answer = sorted(foods[i:], key=lambda x: x[1])
# print(spend, k)
return answer[k][1]
food_len -= 1
return -1
c. 회고
내 풀이
- 시간이 지날때마다 1번 음식부터 1초씩 사라지므로 단순하게 food_times로 for문을 돌렸다. 그랬더니, 12점 받았다.
반성
- 정렬을 생각했으나, 다시 원복시키는 방법이 떠오르지 않아서 하지 못했다.
결론
- 그림을 그려보자.. 그림을 그려보면 문제를 풀다가 잊혀지는 조건이나 패턴들이 보인다.
C. 문제 해설
이해한 내용을 바탕으로 작성했습니다.
문제 해석
알고리즘 로직
a. 책 답안
def solution(food_times, k):
foods = [[food_times[i], i + 1] for i in range(len(food_times))]
foods.sort()
food_len = len(food_times)
pre_food_time = 0
for i, food in enumerate(foods):
now_food_time = food[0]
diff = now_food_time - pre_food_time
if diff > 0:
spend = diff * food_len
if spend <= k:
k -= spend
pre_food_time = now_food_time
elif spend > k:
k %= food_len
answer = sorted(foods[i:], key=lambda x: x[1])
# print(spend, k)
return answer[k][1]
food_len -= 1
return -1
내 풀이
- 시간이 지날때마다 1번 음식부터 1초씩 사라지므로 단순하게 food_times로 for문을 돌렸다. 그랬더니, 12점 받았다.
반성
- 정렬을 생각했으나, 다시 원복시키는 방법이 떠오르지 않아서 하지 못했다.
결론
- 그림을 그려보자.. 그림을 그려보면 문제를 풀다가 잊혀지는 조건이나 패턴들이 보인다.
C. 문제 해설
이해한 내용을 바탕으로 작성했습니다.
문제 해석
알고리즘 로직
a. 책 답안
이해한 내용을 바탕으로 작성했습니다.
문제 해석
알고리즘 로직
python-for-coding-test/2.py at master · ndb796/python-for-coding-test (github.com) [1]
b. 유튜브 참고
카카오 코딩 테스트 - 무지의 먹방 라이브 (Python 풀이) - YouTube [2]
참고문헌
[1] 나동빈, "이것이 취업을 위한 코딩 테스트다 with 파이썬", 초판, 2쇄, 한빛미디어, 2020년
[2] ezsw. (1069) 카카오 코딩 테스트 - 무지의 먹방 라이브 (Python 풀이) - YouTube. Youtube. (accessed Sep 9, 2021)
Ghost