본문 바로가기
728x90

전체 글202

[BOJ/백준] 1967 트리의 지름 ● [문제번호 1967] 트리의 지름 https://www.acmicpc.net/problem/1967 1967번: 트리의 지름 파일의 첫 번째 줄은 노드의 개수 n(1 ≤ n ≤ 10,000)이다. 둘째 줄부터 n-1개의 줄에 각 간선에 대한 정보가 들어온다. 간선에 대한 정보는 세 개의 정수로 이루어져 있다. 첫 번째 정수는 간선이 연 www.acmicpc.net ● 알아야 할 것 : vector 자료구조와 메소드 : pair 자료구조와 메소드 : BFS, DFS(재귀) ● 풀이 과정 : 1167 트리의 지름 문제와 거의 동일한 문제이다. 방향 그래프에서 무방향 그래프로 바꾸면 동일한 것 같다. : BFS, DFS(재귀) 를 구현하였다. : 구글링에 의한 풀이과정은 1. 임의의 정점에서 가장 멀리 있.. 2021. 9. 15.
[BOJ/백준] 1167 트리의 지름 ● [문제번호 1167] 트리의 지름 https://www.acmicpc.net/problem/1167 1167번: 트리의 지름 트리가 입력으로 주어진다. 먼저 첫 번째 줄에서는 트리의 정점의 개수 V가 주어지고 (2 ≤ V ≤ 100,000)둘째 줄부터 V개의 줄에 걸쳐 간선의 정보가 다음과 같이 주어진다. 정점 번호는 1부터 V까지 www.acmicpc.net ● 알아야 할 것 : vector 자료구조와 메소드 : pair 자료구조와 메소드 : BFS, DFS(재귀) ● 풀이 과정 : BFS, DFS(재귀)로 모두 구현해봐도 정답도 잘 나오는데 계속 3%, 4%에서 '틀렸습니다'를 받았다. 무엇이 문제일지 고민하고 구글링해보니 모든 정점을 출발점으로 놓고 실행하면 통과하기 어렵다고 한다. : 구글링에.. 2021. 9. 15.
[BOJ/백준] 11725 트리의 부모 찾기 ● [문제번호 11725] 트리의 부모 찾기 https://www.acmicpc.net/problem/11725 11725번: 트리의 부모 찾기 루트 없는 트리가 주어진다. 이때, 트리의 루트를 1이라고 정했을 때, 각 노드의 부모를 구하는 프로그램을 작성하시오. www.acmicpc.net ● 알아야 할 것 : vector 자료구조와 메소드 : 그래프 : 트리 : DFS, BFS ● 풀이 과정 : BFS, DFS(재귀) 각각 구현했는데 중요한 로직은 동잃하다. 1. 모든 노드의 연결관계를 입력받고 2. DFS(재귀), BFS를 이용하여 모든 노드의 부모노드를 저장한다. → 현재노드의 자식노드들의 부모노드는 자신이다. 3. 저장한 각 노드의 부모노드를 출력한다, ● 주의 할 것 : 찾는 노드를 입력하면 .. 2021. 9. 15.
[BOJ/백준] 2250 트리의 높이와 너비 ● [문제번호 2250] 트리의 높이와 너비 https://www.acmicpc.net/problem/2250 2250번: 트리의 높이와 너비 첫째 줄에 노드의 개수를 나타내는 정수 N(1 ≤ N ≤ 10,000)이 주어진다. 다음 N개의 줄에는 각 줄마다 노드 번호와 해당 노드의 왼쪽 자식 노드와 오른쪽 자식 노드의 번호가 순서대로 주어진다. www.acmicpc.net ● 알아야 할 것 : 이진트리 : 중위 순회 ● 풀이 과정 : 생각보다 고려하여 구할 것이 꽤 있었다. : 각 노드를 입력받고 왼쪽, 오른쪽 자식을 저장한 다음에 1. 이진트리의 Root 노드를 구하기 → 모든 노드의 왼쪽, 오른쪽 자식에 없는 노드가 Root 노드이다. 2. 너비를 구할 때 사용할 '이진트리의 노드'의 index를 구.. 2021. 9. 15.
[BOJ/백준] 1991 트리 순회 ● [문제번호 1991] 트리 순회 https://www.acmicpc.net/problem/1991 1991번: 트리 순회 첫째 줄에는 이진 트리의 노드의 개수 N(1 ≤ N ≤ 26)이 주어진다. 둘째 줄부터 N개의 줄에 걸쳐 각 노드와 그의 왼쪽 자식 노드, 오른쪽 자식 노드가 주어진다. 노드의 이름은 A부터 차례대로 알파 www.acmicpc.net ● 알아야 할 것 : 트리 : 재귀 : 전위 순회 (preOrder) : 중위 순회 (inOrder) : 후위 순회 (postOrder) ● 풀이 과정 : 왼쪽 자식 배열, 오른쪽 자식 배열 과 재귀를 이용하여 간단하게 구현할 수 있다. ● 주의 할 것 : NULL ● 참고 할 것 : NULL ● 풀이 코드 #include using namespace.. 2021. 9. 15.
[BOJ/백준] 1261 알고스팟 ● [문제번호 1261] 알고스팟 https://www.acmicpc.net/problem/1261 1261번: 알고스팟 첫째 줄에 미로의 크기를 나타내는 가로 크기 M, 세로 크기 N (1 ≤ N, M ≤ 100)이 주어진다. 다음 N개의 줄에는 미로의 상태를 나타내는 숫자 0과 1이 주어진다. 0은 빈 방을 의미하고, 1은 벽을 의미 www.acmicpc.net ● 알아야 할 것 : pair 자료구조와 메소드 : BFS ● 풀이 과정 : 최소 이동 횟수를 구하는 것이 아닌 출발점에서 도착점까지 꼬불꼬불 돌아서 가더라도 부순 문의 수가 최소가 되어야한다. 그래서 BFS로 구현할 때 중간에 멈추는 조건을 넣지 않았다. : BFS로 구현하면서 현재위치에서 다음위치로 갈 때, 1. 다음위치가 미로를 벗어나면.. 2021. 9. 15.
728x90