문제
https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV5PpFQaAQMDFAUq
설계
- dfs 문제
- 1년을 level(수준) 으로 설계
- 일권, 1개월권, 3개월권을 비교 후 마지막에 1년권과 비교
T = int(input())
for tc in range(1, T+1):
day, month, three_month, year = map(int, input().split()) # 이용 가격
arr = list(map(int, input().split())) # 이용 계획
minV = 99999
def dfs(level, sumV):
global minV
if level == 12:
minV = min(minV, sumV)
return
for i in range(3):
if i == 0: # 일권
dfs(level+1, sumV + arr[level]*day) # 일수 * 가격
elif i == 1: # 1개월권
dfs(level+1, sumV + month)
elif i == 2: # 3개월권
if level+3 <= 12:
dfs(level+3, sumV + three_month)
dfs(0, 0)
minV = min(minV, year) # 마지막으로 월권과 가격 비교
print(f'#{tc} {minV}')
'PS (Problem Solving) > SW Expert Academy' 카테고리의 다른 글
[SWEA] 4012. 모의 SW 역량테스트 - 요리사 (0) | 2022.04.07 |
---|---|
[SWEA] 4008. 모의 SW 역량테스트 - 숫자 만들기 (0) | 2022.04.07 |
[SWEA] 6218. [파이썬 프로그래밍 기초(1) 파이썬의 기본 구조와 기초 문법] 6. 흐름과 제어 (0) | 2022.01.05 |
[SWEA] 6204. [파이썬 프로그래밍 기초(1) 파이썬의 기본 구조와 기초 문법] 5. 연산자 (0) | 2021.12.30 |
[SWEA] 6196. [파이썬 프로그래밍 기초(1) 파이썬의 기본 구조와 기초 문법] 4. 변수 (0) | 2021.12.29 |