-
백준 16922번 로마 숫자 만들기PS 2020. 2. 27. 23:28
https://www.acmicpc.net/problem/16922
<접근방법>
전형적인 백트래킹 문제입니다.
조합을 만든 후 숫자 중복 체크를 해주면 됩니다.
<느낀 점>
처음에 순열로 짜서 틀렸다..
<코드>
#include <iostream> #include <algorithm> using namespace std; int n; int res; int cal[4] = {1, 5, 10, 50}; bool visit[1001]; void dfs(int dep, int start, int num) { if (dep == n) { if (!visit[num]) { res++; visit[num] = true; } return; } for (int i = start; i < 4; i++) { num += cal[i]; dfs(dep + 1, i, num); num -= cal[i]; } } int main() { cin >> n; dfs(0, 0, 0); cout << res << '\n'; }
'PS' 카테고리의 다른 글
벡준 16939번 2x2x2 큐브 (0) 2020.03.03 백준 16637번 괄호 추가하기 (0) 2020.02.27 백준 9376번 탈옥 (0) 2020.02.27 백준 2931번 가스관 (0) 2020.02.27 백준 1937번 욕심쟁이 판다 (0) 2020.02.24