본문 바로가기

PS/백준

[BOJ] 백준 9184 신나는 함수 실행 (Swift)

반응형

문제

https://www.acmicpc.net/problem/9184

 

9184번: 신나는 함수 실행

입력은 세 정수 a, b, c로 이루어져 있으며, 한 줄에 하나씩 주어진다. 입력의 마지막은 -1 -1 -1로 나타내며, 세 정수가 모두 -1인 경우는 입력의 마지막을 제외하면 없다.

www.acmicpc.net

풀이

DP를 사용하여 풀 수 있는 문제입니다.
DP는 점화식만 세운다면 쉽게 풀 수 있습니다.

이 문제에서는 점화식을 아예 주고 시작해서, 점화식에 맞게 코드를 작성해줍시다.

먼저, 저는 20 * 20 * 20의 3차원 배열을 선언해주었고, 초기값을 1로 갖고 있도록 하였습니다.

이제 이 3차원 배열을 점화식에 맞게 채워주었습니다.

바텀업 방식으로 풀이할 때는
입력을 받을 때, 0 보다 작거나 같은 수가 들어온다면 무조건 1을 출력하도록 하였습니다.
20보다 큰 수가 나온다면 w(20, 20, 20)을 출력해주었습니다.

그 외의 경우에는 w(a, b, c)를 출력해주면 됩니다.

탑 다운 방식으로 했을 때는 위의 방식을 고려하지 않았습니다.
어차피 재귀함수에서 다 걸러주기 때문입니다.

소스코드

후기

DP 연습을 위해서 탑 다운 방식과 바텀 업 방식으로 풀어보았습니다.

반응형