![[백준 / BOJ] 9184번 신나는 함수 실행 (C++, Python)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Ft7mUn%2FbtrJBmL0AQu%2FZk1etAGjr6xmbqTuH540MK%2Fimg.png)
[백준 / BOJ] 9184번 신나는 함수 실행 (C++, Python)◎ 자료구조와 알고리즘/백준(BOJ) 문제풀이2022. 8. 12. 20:37
Table of Contents
반응형
링크 : https://www.acmicpc.net/problem/9184
9184번: 신나는 함수 실행
입력은 세 정수 a, b, c로 이루어져 있으며, 한 줄에 하나씩 주어진다. 입력의 마지막은 -1 -1 -1로 나타내며, 세 정수가 모두 -1인 경우는 입력의 마지막을 제외하면 없다.
www.acmicpc.net
문제
문제 풀이
문제에 적혀있는 재귀함수 w(a, b, c)를 동적 계획법으로 옮기면 된다.
핵심 부분만 언급하자면 기저 사례인 1, w(20, 20, 20)을 리턴하는 코드 밑에
// C++의 경우
else if (dp[a][b][c] != 0)
return dp[a][b][c];
# Python의 경우
elif dp[a][b][c] != 0:
return dp[a][b][c]
해당 코드를 넣어주어야 한다. 그렇지 않으면 동적 계획법의 의미가 없기 때문이다. 어차피 재귀로 들어가면 기저사례 말고는 해당 코드에 걸리게 되므로 이전에 저장해놨던 값을 쓰게 된다. 그래서 동적 계획법의 의미가 생긴다.
C++ 코드 전문
Python 코드 전문
소감
중간에 코드 두 줄을 넣는 것이 중요했던 문제다.
반응형
'◎ 자료구조와 알고리즘 > 백준(BOJ) 문제풀이' 카테고리의 다른 글
[백준 / BOJ] 10718번 We love kriii (C++, Python) (0) | 2022.08.30 |
---|---|
[백준 / BOJ] 2557번 Hello World (C++, Python) (부제 : Python print에 대해) (0) | 2022.08.29 |
[백준 / BOJ] 24416번 알고리즘 수업 - 피보나치 수 1 (C++, Python) (0) | 2022.08.11 |
[백준 / BOJ] 2580번 스도쿠 (C++, Python) (0) | 2022.08.07 |
[백준 / BOJ] 14889번 스타트와 링크 (C++, Python) (0) | 2022.08.07 |
@Reo :: 코드 아카이브
자기계발 블로그