-
백준(BOJ) 16922번 로마 숫자 만들기알고리즘 풀이/백준(Boj) 2019. 12. 9. 02:27
문제 : https://www.acmicpc.net/problem/16922
16922번: 로마 숫자 만들기
2, 6, 10, 11, 15, 20, 51, 55, 60, 100을 만들 수 있다.
www.acmicpc.net
풀이 :
재귀적으로 구현해 주었는데
현재 위치를 고르고 다음 위치를 가는 경우와
현재 위치를 고르고 또 현재 위치에 남아있는 경우
현재 위치를 고르지 않고 다음 위치를 가는 경우 이렇게 3가지로 분류해 주었다.
코드 ( C++ )
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters#include <iostream> #include <vector> #include <set> using namespace std; int N; set<int> se; int num; int S[4] = { 1,5,10,50 }; void solve(int begin, int cnt, int sum) { if (begin >= 4) return; if (cnt == N) { if (se.find(sum) == se.end()) { se.insert(sum); num++; } return; } int ret = 0; solve(begin + 1, cnt + 1, sum + S[begin]); solve(begin, cnt + 1, sum + S[begin]); solve(begin + 1, cnt, sum); } int main() { cin >> N; solve(0, 0, 0); cout << num << "\n"; return 0; } '알고리즘 풀이 > 백준(Boj)' 카테고리의 다른 글
백준(BOJ) 12100번 2048 (Easy) (0) 2019.12.15 백준(BOJ) 17471번 게리맨더링 (0) 2019.12.15 백준(BOJ) 16917번 양념 반 후라이드 반 (0) 2019.12.08 백준(BOJ) 16988번 Baaaaaaaaaduk2 (Easy) (0) 2019.12.02 백준(BOJ) 16935번 배열 돌리기 3 (0) 2019.12.01