Problem Solving/Baekjoon1323 [백준] 1107 리모컨 - Brute Force / Java • 문제 링크 1107번: 리모컨 첫째 줄에 수빈이가 이동하려고 하는 채널 N (0 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 고장난 버튼의 개수 M (0 ≤ M ≤ 10)이 주어진다. 고장난 버튼이 있는 경우에는 셋째 줄에는 고장난 버튼 www.acmicpc.net • 풀이 과정 이동하려는 채널의 번호 n과 고장난 버튼을 m개 입력받는다. 이때 m = 0 일 경우, NullPointer 예외를 방지하기 위하여 m > 0 일 경우 버튼의 정보를 입력받는 조건을 건다. 먼저 모든 버튼이 고장났을 경우, 채널 100에서 +, - 버튼으로만 조작하는 횟수(Math.abs(n - 100)) 를 minCnt 의 초기값으로 둔다. 이어서 이동할 수 있는 채널의 모든 경우(0 ~ 999999) 를 완전 탐색.. 2022. 9. 12. [백준] 17299 오등큰수 - Data Structure / Java • 문제 링크 17299번: 오등큰수 첫째 줄에 수열 A의 크기 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째에 수열 A의 원소 A1, A2, ..., AN (1 ≤ Ai ≤ 1,000,000)이 주어진다. www.acmicpc.net • 풀이 과정 • 풀이 코드 import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.util.Stack; import java.util.StringTokenizer; public class Main { public .. 2022. 9. 11. [백준] 17298 오큰수 - Data Structure / Java • 문제 링크 17298번: 오큰수 첫째 줄에 수열 A의 크기 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에 수열 A의 원소 A1, A2, ..., AN (1 ≤ Ai ≤ 1,000,000)이 주어진다. www.acmicpc.net • 풀이 과정 • 풀이 코드 import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.util.Stack; import java.util.StringTokenizer; public class Main { public.. 2022. 9. 10. [백준] 1167 트리의 지름 - Graph Theory / Java • 문제 링크 1167번: 트리의 지름 트리가 입력으로 주어진다. 먼저 첫 번째 줄에서는 트리의 정점의 개수 V가 주어지고 (2 ≤ V ≤ 100,000)둘째 줄부터 V개의 줄에 걸쳐 간선의 정보가 다음과 같이 주어진다. 정점 번호는 1부터 V까지 www.acmicpc.net • 풀이 과정 간선의 정점(node)과 가중치(weight) 정보를 가지는 Edge 클래스를 생성, 인접 리스트에 트리의 정보를 입력받는다. 트리의 거리가 가장 먼 두 노드 A, B가 존재할 때, 임의의 노드에서 가장 거리가 먼 노드는 A 또는 B가 된다. 따라서 임의의 노드(1) 에서부터 가장 먼 노드를 DFS 탐색을 통하여 구하여 maxNode 에 저장하고, 해당 노드에서부터 가장 거리가 먼 노드까지의 거리가 곧 트리의 지름이 .. 2022. 9. 9. [백준] 11725 트리의 부모 찾기 - Graph Theory / Java • 문제 링크 11725번: 트리의 부모 찾기 루트 없는 트리가 주어진다. 이때, 트리의 루트를 1이라고 정했을 때, 각 노드의 부모를 구하는 프로그램을 작성하시오. www.acmicpc.net • 풀이 과정 각 노드의 부모 노드를 저장할 parent, 방문 여부를 확인할 visit 배열을 생성하고, 인접 리스트를 활용하여 트리의 무향 그래프 정보를 입력받아 저장하며 각각의 크기는 n(노드의 개수) + 1 로 지정한다. 문제에 주어진 조건에 따라 루트 노트 1에서 부터 BFS 탐색을 수행한다. 인접 리스트에 저장된 각각의 노드와 연결된 노드를 탐색하여 parent 배열에 현재 노드의 부모 노드를 저장한다. 이 후 루트 노드를 제외한 나머지 노드의 부모 노드들을 정답으로써 출력한다. • 풀이 코드 impo.. 2022. 9. 8. [백준] 2250 트리의 높이와 너비 - Graph Theory / Java • 문제 링크 2250번: 트리의 높이와 너비 첫째 줄에 노드의 개수를 나타내는 정수 N(1 ≤ N ≤ 10,000)이 주어진다. 다음 N개의 줄에는 각 줄마다 노드 번호와 해당 노드의 왼쪽 자식 노드와 오른쪽 자식 노드의 번호가 순서대로 주어진다. www.acmicpc.net • 풀이 과정 각 층(level) 에 존재하는 노드의 간격의 최대, 최소값을 저장할 max, min 배열을 생성하여 각 층마다 0, n(노드의 개수) 값으로 초기화한다. 문제에 주어진 트리를 부모, 현재, 왼쪽 자식, 오른쪽 자식 노드의 값을 가진 Node 객체 배열을 통해 구성하며, 각각의 왼쪽, 오른쪽 자식 노드의 존재 여부에 따라 현재 노드를 부모 노드로 지정한다. 이 중 부모 노드가 없는 노드를 찾아 해당 노드를 루트 노드.. 2022. 9. 7. 이전 1 ··· 196 197 198 199 200 201 202 ··· 221 다음