-
[ 백준 [[ 자바 ][ 6603 ] 로또코딩/알고리즘 2019. 3. 23. 23:53
예전에 봤던 dfs 문제를 한번 다시 찾아 풀어봤는데
접근 방법은 알겠는데 정답이 다르게 나와서 다른 분들 코드를 참조했다
여러가지 방법중에 나한테 제일 직관적인인 방법이였다
오름차순으로 커져가고 중복이 없어야하니
+1 해준값을 넣어주면 된다
그려보면 이해가 간다.
여튼간에 result 값을 1로 했다가 다시 0으로 하는게 맘에 든다. ㅎ
package back; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; public class Main_backjoon_6603_로또 { static int[] temp; static int[] arr; static int TESTCASE; static int N; public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st ; while(true) { st = new StringTokenizer(br.readLine(), " "); N = Integer.parseInt( st.nextToken()); temp = new int[N+1]; arr = new int[N+1]; if(N == 0) { break; } for(int i = 0; i < N; i++) { arr[i] = Integer.parseInt( st.nextToken()); } dfs(0, 0); System.out.println(); } } public static void dfs(int start, int depth) { if( depth == 6 ) { for(int i = 0 ; i < N; i++) { if(temp[i] == 1) { System.out.print( arr[i] + " "); } } System.out.println(); } for(int i = start; i < N; i++) { temp[i] = 1; dfs( i + 1, depth+1); temp[i] = 0; } } }
'코딩 > 알고리즘' 카테고리의 다른 글
5658. [모의 SW 역량테스트] 보물상자 비밀번호 (0) 2019.04.12 [ 백준 ][ 자바][ 16234 ] 인구이동 (0) 2019.04.05 [백준][ 자바 ][ 15683 ] 감시 (0) 2019.03.23 [ 백준 ][ 자바 ][ 14500] 테트로미노 (0) 2019.03.17 [ 백준 ][ 자바 ][ 12100 ] 2048(EASY) (0) 2019.03.10