문제 링크 https://www.acmicpc.net/problem/10974 10974번: 모든 순열 N이 주어졌을 때, 1부터 N까지의 수로 이루어진 순열을 사전순으로 출력하는 프로그램을 작성하시오. www.acmicpc.net 접근 및 시도 (생각의 흐름) DFS를 통한 순열, 조합 문제를 더 풀어보자 라고 찾아보다가 발견한 문제. 사용 알고리즘 - DFS 순열 풀이 - 순열은 조합과 달리 idx가 필요 없다. - 순열은 조합과 달리 selected 된 순서대로 값을 저장할 배열, ArrayList 등의 자료구조가 더 필요하다. ex) public static void dfs(int idx, int cnt, int n) { if (cnt == n) { check(); return; } for (in..
문제 링크 https://www.acmicpc.net/problem/2151 2151번: 거울 설치 첫째 줄에 집의 크기 N (2 ≤ N ≤ 50)이 주어진다. 다음 N개의 줄에는 N개의 문자로 집에 대한 정보가 주어진다. ‘#’는 문이 설치된 곳으로 항상 두 곳이며, ‘.’은 아무 것도 없는 것으로 빛은 www.acmicpc.net 접근 및 시도 (생각의 흐름) 거울을 두 종류의 대각선 방향으로 설치 할 수 있다는 것 까지는 잘 생각했다. / 또는 \ 방향으로 거울을 설치하는 것이다. 그런데 생각이 여기서 더이상 발전하지 못했다. 단순하게 생각해서 90도로 반사된다고만 생각하면 되는데 더 복잡하게 생각했다. 즉 거울을 만나면 인접한 오른쪽, 아래쪽, 왼쪽, 위쪽 중에 하나로 반사되서 나간다고 단순하게 ..
문제 링크 https://www.acmicpc.net/problem/16118 16118번: 달빛 여우 첫 줄에 나무 그루터기의 개수와 오솔길의 개수를 의미하는 정수 N, M(2 ≤ N ≤ 4,000, 1 ≤ M ≤ 100,000)이 주어진다. 두 번째 줄부터 M개의 줄에 걸쳐 각 줄에 세 개의 정수 a, b, d(1 ≤ a, b ≤ N, a ≠ b www.acmicpc.net 접근 및 시도 (생각의 흐름) 여우는 기본적인 다익스트라로 풀면 된다고 생각을 했고 늑대는 뭔가 변형된 다익스트라 라고 풀어야 하지 않을까? 라고 문제를 보고 떠올렸다. 그렇다면 이 "변형된 다익스트라" 를 어떤 컨셉으로 구현해야 할까? 다익스트라 또는 BFS 등의 문제를 풀때 흔히 사용하는 아래와 같은 Node 클래스에 'fas..