목록전체 글 (601)
sm 기술 블로그
※ 본 코드는 pypy3으로 제출해야 합니다. N = int(input()) visited = [False] * N QueenNum = [0] * N cnt = 0 def DFS(depth): global cnt if depth == N: cnt += 1 return for i in range(N): if not visited[i]: QueenNum[depth] = i isQLocated = False for j in range(depth): if abs(QueenNum[depth] - QueenNum[j]) == abs(depth-j): isQLocated = True break if not isQLocated: print(">>",i,depth,QueenNum[depth]) visited[i] = T..
import java.util.*; import java.io.*; class Main { static StringBuilder sb = new StringBuilder(); static int N, M; static int[] arr; public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String[] sBits = br.readLine().split(" "); N = Integer.parseInt(sBits[0]); M = Integer.parseInt(sBits[1]); arr = new int[M]; DFS(1,..
N, M = map(int, input().split()) S = [] def DFS(start): if len(S) == M: print(" ".join(map(str, S))) return for i in range(start, N+1): S.append(i) DFS(i) S.pop() DFS(1) 문제요약 DFS를 이용하여 백트래킹을 해보아라. 설명 DFS와 백트래킹에 대한 개념은 아래를 참고하자. https://smhope.tistory.com/309 백트래킹 백트래킹 더 이상 나아갈 수 없는 상황에서 그 이전 단계로 복귀하는 과정 모든 경우의 수를 전부 고려하는 알고리즘이다. 트리 탐색 알고리즘이라고 봐도 무방하며 방식에 따라 깊이우선탐색 ( smhope.tistory.com https://sm..
import java.util.*; import java.io.*; public class Main { static StringBuilder sb = new StringBuilder(); static int[] arr; static int N, M; public static void main(String[] args)throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String[] sBits = br.readLine().split(" "); N = Integer.parseInt(sBits[0]); M = Integer.parseInt(sBits[1]); arr = new int[M]; ..