[JAVA] 백준 2661- 좋은수열
·
PS/브루트포스(dfs,bfs,backtracking)
https://www.acmicpc.net/problem/2661    문제를 보고나서, backtracking을 이용한 순열을 만들고, 순열을 하나 증가시킬때마다 이게 좋은수열인지 나쁜 수열인지 확인하는 과정으로 풀수 있겠구나 생각했다. 그런데 문제는, TLE가 뜨냐 안뜨냐였는데, 문제조건에서 N은 최대 80이라고 했고, 숫자는 [1,2,3]만 허용한다했으니최악의경우 3^80번 순열을 만들어야 하므로 당연히 시간초과가 날 것이라고 생각했다. 그래서 이건 백트래킹으로 풀수 없는 문제인가 싶어서 다른 방법을 생각해보았지만 도저히 떠오르지않았고,순열을 만드는 숫자 후보 [1,2,3]을 작은 수부터 그리디하게 고르면 혹시 통과를 할수 있지 않을까? 생각해서 구현을 해보았는데 신기하게도 시간이 매우 적게 걸렸다..