반응형
dfs로 모든 경우의 수를 탐색하는 문제였습니다.
풀이방법
2의 7승(100만의 자릿수 + 1) 정도로 dfs를 수행하면 됩니다.
Code
#include <bits/stdc++.h>
using namespace std;
int n,ans;
void dfs(int sum){
if (sum > n) return;
dfs(sum * 10 + 7);
dfs(sum * 10 + 4);
ans = max(ans, sum);
}
int main(){
cin >> n;
dfs(0);
cout << ans;
}
Test Case
몇 가지 반례를 직접 작성해 보았습니다.
input
7000
답 4777
input
4
답 4
input
7
답 7
'Algorithm > DFS' 카테고리의 다른 글
(C++) - 백준(BOJ) 2303번 : 숫자 게임 (0) | 2021.02.12 |
---|---|
(C++) - 프로그래머스(고득점 kit - (DFS/BFS)) : 타겟 넘버(DFS) 답 (0) | 2021.02.11 |
(C++) - 백준(BOJ) 1068번 : 트리 답 (0) | 2021.01.31 |
(C++) - 백준(BOJ) 1189번 : 컴백홈 답 (0) | 2021.01.26 |
(C++) - 백준(BOJ) 14503번 : 로봇청소기 답 (0) | 2020.09.22 |