소마
-
소마 온라인 코딩테스트 1번 문제 복기CS기초/알고리즘 2020. 3. 15. 01:24
처음에 이렇게 거창하게 dfs 로 풀겠다고 설쳤다.. 아니근데 n 이 2이상 1000이하. 최소 획수를 가진 1만을 가진다 가정하면 최대 500자리가 된다. 이건 직접 숫자를 계산해서 비교하라는게 아닐 꺼라는 생각이 들었다. 잘못 접근하는 중이었다.. #include #include #define MAX 10 using namespace std; int arr[MAX]; // 0~9 까지 숫자의 획 수 int selected[501]; // 만들 수 있는 숫자 조합. n 이 최대 1000이고, 가장 적은 획수로 만들 수 있는 숫자 1의 획 수는 2이므로. 1000/2 = 500 이므로 최대 가능한 자리수는 500자리 long long max_num = 0; //최대 수 = 정답. void dfs(int ..