

1. 문제 분석
문제를 이해하는게 생각보다 어려웠다.
감소하는 수는 알겠는데 몇번째 라는게 이해가 안갔는데, 단순히 감소하는수들을 나열해 놓고 몇번째에 있냐는 말이였다.
1~9까지는 그냥 1~9까지고
10
20
21
30
31
32
40
41
42 - 18번째
이말이였다.
처음에는 1개, 2개, 3개 씩늘어나고 100의자리는 10의자리의 수만큼 합쳐지는 규칙성을 발견했지만, 구현하는데 어려움을 겪었다. 그래서 987654321 까지 올 수 있는 감소하는 수는 모조리 배열에 넣어서 찾는 형태로 구현했다.
2. 전체소스
import java.io.*; import java.util.*; public class Main { static long[] array; static int p = 0; private static void DFS(long num) { array[p] = num; p++; long modValue = num % 10; if (modValue == 0) { return; } for (long i = modValue - 1; i >= 0; i--) { long newValue = num * 10 + i; DFS(newValue); } } public static void main(String[] args) throws Exception { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String tar = br.readLine(); int target = Integer.parseInt(tar); array = new long[1023]; if (target > 1022) { System.out.println("-1"); } else { for (int i = 0; i < 10; i++) { DFS(i); } Arrays.sort(array); System.out.println(array[target]); } } }
'알고리즘(BOJ) > Gold' 카테고리의 다른 글
백준 - 신기한 소수 2023 (0) | 2023.02.03 |
---|---|
백준 - 이모티콘 14226 (0) | 2023.02.02 |
백준 - Contact 1013 (0) | 2023.01.29 |
백준 - 연구소2 17141 (0) | 2023.01.28 |
16236 - 아기상어 (BFS) (0) | 2023.01.14 |