PS/백준 (318) 썸네일형 리스트형 [BOJ] 백준 11725 트리의 부모 찾기 (Swift) 문제 https://www.acmicpc.net/problem/11725 11725번: 트리의 부모 찾기 루트 없는 트리가 주어진다. 이때, 트리의 루트를 1이라고 정했을 때, 각 노드의 부모를 구하는 프로그램을 작성하시오. www.acmicpc.net 풀이 먼저 트리를 그려보았음 루트노드가 1로 고정되어 있어서 BFS/DFS를 1에서 한번만 수행시키면 되겠다고 생각했음 간선의 개수는 노드의 개수 - 1개 이므로, 무조건 모든 노드가 연결되어 있을 것이라고 생각했음 부모의 노드를 알기 위해서는 현재노드 -> 다음노드 로 탐색할 때, 현재노드의 번호를 어딘가에 담아둬야 될 것이라고 생각했음 visited 배열을 [Bool] 자료형으로 선언해서 사용했었는데, [Int]로 선언에서 그곳에 담아두어서 해결할 수.. [BOJ] 백준 11724 연결 요소의 개수 (Swift) 문제 https://www.acmicpc.net/problem/11724 11724번: 연결 요소의 개수 첫째 줄에 정점의 개수 N과 간선의 개수 M이 주어진다. (1 ≤ N ≤ 1,000, 0 ≤ M ≤ N×(N-1)/2) 둘째 줄부터 M개의 줄에 간선의 양 끝점 u와 v가 주어진다. (1 ≤ u, v ≤ N, u ≠ v) 같은 간선은 한 번만 주 www.acmicpc.net 풀이 먼저 예제입력 1에 있는 그래프를 그려보았다. 방문하지 않은 모든 노드에대해 BFS/DFS를 수행하면서 총 몇번 수행되는지 확인하면 연결 요소의 개수를 확인할 수 있겠다고 생각했다. [1]번 노드에대해 BFS/DFS 수행시 [2, 5] 노드를 방문하기 때문에 2번 노드는 건너뛰고 3번 노드에 대해 BFS/DFS 수행.. [3.. [BOJ] 백준 4963 섬의 개수 (Swift) 문제 https://www.acmicpc.net/problem/4963 4963번: 섬의 개수 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스의 첫째 줄에는 지도의 너비 w와 높이 h가 주어진다. w와 h는 50보다 작거나 같은 양의 정수이다. 둘째 줄부터 h개 줄에는 지도 www.acmicpc.net 풀이 딱 보자마자 길찾기 문제다! 라고 생각했음 동, 남, 서, 북, 대각선(4방향)을 고려해야겠다고 생각함 DFS/BFS 둘 다로 풀이할 수 있을 것 같다고 느낌 소스코드 후기 많은 그래프 문제들과 같이 연결 요소의 갯수를 구하는 문제라고 생각한다. 다만 방향이 8가지란 점에서 dx, dy를 8개로 정의를 해줘야 했던 문제였다. 그 외에는 기본적인 BFS/DFS 문제였다고 생각한다. [BOJ] 백준 2644 촌수계산 (Swift) 문제 https://www.acmicpc.net/problem/2644 2644번: 촌수계산 사람들은 1, 2, 3, …, n (1 ≤ n ≤ 100)의 연속된 번호로 각각 표시된다. 입력 파일의 첫째 줄에는 전체 사람의 수 n이 주어지고, 둘째 줄에는 촌수를 계산해야 하는 서로 다른 두 사람의 번호가 주어 www.acmicpc.net 풀이 예제입력 1를 트리로 그려보았음 7 -> 3의 촌수는 3임, (3만큼의 거리로 해석하였습니다) 촌수를 계산해야 하는 번호 중 앞번호를 Start, 도착 번호를 End로 두고, DFS/BFS를 Start 번호부터 시작 한 후, 도착 번호를 만난다면 그때의 Depth를 출력해주면 되겠다고 생각했다. 만약 도달할 수 없다면 -1 을 출력해주자! 소스코드 후기 그래프의 간선.. [BOJ] 백준 1012 유기농 배추 (Swift) 문제 https://www.acmicpc.net/problem/1012 1012번: 유기농 배추 차세대 영농인 한나는 강원도 고랭지에서 유기농 배추를 재배하기로 하였다. 농약을 쓰지 않고 배추를 재배하려면 배추를 해충으로부터 보호하는 것이 중요하기 때문에, 한나는 해충 방지에 www.acmicpc.net 풀이 DFS, BFS로 풀이하면 되겠다고 바로 생각이 들었다! 2차원 배열 그래프를 전부 순회하면서, 그래프의 값이 1일 때, DFS 혹은 BFS를 돌리고 총 몇번 돌리는지 갯수를 세면 되겠다고 생각했다. 그래프의 범위를 넘는지 여부를 알 수 있는 isVaildCoordinate(x:y:) 라는 함수를 만들어주었음! 그래프의 범위를 넘지 않고, 방문하지 않았으며, 이동할 좌표의 값이 1이라면 방문하는 길.. [BOJ] 백준 2606 바이러스 (Swift) 문제 https://www.acmicpc.net/problem/2606 2606번: 바이러스 첫째 줄에는 컴퓨터의 수가 주어진다. 컴퓨터의 수는 100 이하이고 각 컴퓨터에는 1번 부터 차례대로 번호가 매겨진다. 둘째 줄에는 네트워크 상에서 직접 연결되어 있는 컴퓨터 쌍의 수가 주어 www.acmicpc.net 풀이 DFS, BFS로 풀이할 수 있을 것이라 생각했음 1번 노드에서 DFS 또는 BFS를 수행한 후, 1번 노드를 제외하고 몇개의 노드를 방문했는지 확인을 하면 풀 수 있을 것이라 생각함 소스코드 후기 Solved.ac에서 BFS/DFS 항목에 standard 뱃지를 달아놓은 문제여서 그런지, BFS/DFS 기초적인 문제라고 생각했다. 한 마디로 풀이하면 이 문제는 연결 요소의 갯수를 계산하는 .. 이전 1 ··· 37 38 39 40 다음