-
문제
푸는데 걸린 시간 : 1시간 10분
문제 이해 잘못해서 30분을 날려먹었다 ㅇ. < 나는,, 저 날짜를 모두 포함해서 여행할 수 있도록 하게 해야하는 줄 알았다... 이렇게 다방면으로 멍청하기도 힘들것인데
class Solution: def mincostTickets(self, days, costs) : ticketCosts = [0 for i in range(max(days)+1)] def existIdx(paramDay): #-idx 에러 방지용 try: return ticketCosts[paramDay] except IndexError: return 0 # 오늘 사고 + 3 case # 1. 1일전에 티켓을 샀다.+ # 2. 7일전에 티켓을 샀다. # 3. 30일전에 티켓을 샀다. for day in range(1, len(ticketCosts)): if day not in days: ticketCosts[day] = ticketCosts[day-1] continue print("현재 날짜:",day, "\n1일전에 살경우:",existIdx(day-1)+costs[0], "\n7일전에 살경우:",existIdx(day-7)+costs[1], "\n30일전에 살경우:",existIdx(day-30)+costs[2]) ticketCosts[day] = min(existIdx(day-1)+costs[0], existIdx(day-7)+costs[1], existIdx(day-30)+costs[2]) return ticketCosts[-1]
https://weejw.tistory.com/391?category=892552
저 문제 풀때가 생각났다.
그래서 저때 방법으로 또 과거를 되뇌이면서 그때 뭐가 좋았더라..하고 minimum 푸는 식으로 dp 사용 풀이를 했다.
'2020년 > 코테' 카테고리의 다른 글
[코테 연습] Find Right Interval Python (0) 2020.08.30 [코테 연습] Fizz Buzz Python (0) 2020.08.28 [코테연습] 스킬 트리 Python (0) 2020.08.25 [코테 연습] 2019 카카오 개발자 겨울 인턴십_크레인 인형뽑기 게임 (0) 2020.08.25 [코테 연습]조이스틱 Python (0) 2020.07.23