본문 바로가기

dfs4

[백준 10451] 순열 사이클 DFS문제입니다. 숫자고르기랑 비슷하지만 이건 사이클 자체의 갯수만 세면 되기때문에 1번부터 N까지 돌리면서 처음 방문한다면 사이클 갯수 1늘리고 방문체크하고 DFS로 방문체크만 하고 나오면 됩니다. 처음 풀때는 숫자고르기랑 똑같이 해서 통과했습니다. (visited가 2까지 가는경우로 체크방법) 제출 후 보니까 속도가 딱 2.5배 오래걸리더군요. 그래서 지금 올린 소스로 다시 통과했습니다. 2019. 4. 17.
[백준 2606] 바이러스 DFS 문제입니다. ArrayList형의 (컴퓨터 수+1) 크기의 배열을 생성, 배열의 원소인 ArrayList는 n번(인덱스) 와 연결된 컴퓨터들을 담을 때 사용할겁니다. 그리고 방문확인용 visited배열 생성했습니다. DFS 돌리는 방식은 1번 컴퓨터부터 시작해 1번 배열에 있는 ArrayList를 순서대로 돌면서 방문하지 않은 번호의 컴퓨터일 경우, 방문처리해주고 출력용 cnt를 1 올려주었습니다. 따로 조건문으로 탈출시키거나 리턴시키지는 않았습니다. 주석으로 된 부분은 그냥 입력 재대로 들어갔는지 확인하는 출력문입니다 2019. 4. 17.
[백준 2668] 숫자 고르기 DFS 문제입니다. 입력을 받아 문제와 같은 형태를 만들기 위한 2차원 배열 arr 방문 확인을 위한 배열 visited 을 사용했습니다. 1부터 입력받은 N까지 DFS를 하면서 방문횟수가 2라면 DFS를 끝내고, 그게 아니라면 방문횟수를 늘려줍니다. 그리고 1 -> 2로 됫을경우 cnt를 1증가.(출력용 변수) 그리고 자기 밑에쪽으로 DFS. 앞으로 몇문제는 DFS를 풀어야겠습니다... 오랜만에 하니까 잘 안되네요 2019. 4. 16.
[백준 1012] 유기농 배추 출처 : https://www.acmicpc.net/problem/1012 메인 메소드 static int[] nX = {-1, 0, 1, 0};//DFS때 사용하기 위한 (다음 배열 위치) nX, nY 배열 static int[] nY = {0, -1, 0, 1}; static int[][] checker; // 방문했는지 아닌지 체킹용 배열 public static void main(String[] args) throws IOException{ Q1012 t = new Q1012(); BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st = new StringTokenizer(br.read.. 2019. 1. 25.