순열 (마지막에 visited[i] = 0 해주기)

알쓸코딩·2024년 8월 16일
0

코테 문제들

목록 보기
112/113
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Baby_Gin_Game {
	//순열은 방문 배열이 있어야 한다.
	static int[] arr;
	static int len = 0;
	static int[] visited;
	static int[] map;

	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		String s = br.readLine(); //122223

		arr = new int[s.length()];
		for (int i = 0; i < s.length(); i++) {
			arr[i] = Integer.parseInt(s.substring(i, i + 1));
		}

		len = arr.length;

		visited = new int[len];
		map = new int[len];

		//순열 구하기
		findPermu(0);

	}

	private static int findPermu(int depth) {
		if (depth == len) {
			for (int n : map) {
				System.out.print(n + " ");
			}
			System.out.println();
			return 1;
		}

		for (int i = 0; i < len; i++) {

			if (visited[i] == 1) { //방문했을 경우
				continue;
			}
			map[depth] = arr[i];
			visited[i] = 1;
			findPermu(depth + 1);
			//visited[i] = 0;

		}
		return 0;
	}
}

  • visited[i] = 0 이라는 코드를 놓치면 안된다!!!
map[depth] = arr[i];
visited[i] = 1;
findPermu(depth + 1);
visited[i] = 0;

profile
알면 쓸데있는 코딩 모음!

0개의 댓글