[백준] 1753번 최단경로 해설 및 풀이 (Python)
·
Study/코딩 테스트
백준 1753번 최단경로https://www.acmicpc.net/problem/1753 문제방향그래프가 주어지면 주어진 시작점에서 다른 모든 정점으로의 최단 경로를 구하는 프로그램을 작성하시오. 단, 모든 간선의 가중치는 10 이하의 자연수이다.입력첫째 줄에 정점의 개수 V와 간선의 개수 E가 주어진다. (1 ≤ V ≤ 20,000, 1 ≤ E ≤ 300,000) 모든 정점에는 1부터 V까지 번호가 매겨져 있다고 가정한다. 둘째 줄에는 시작 정점의 번호 K(1 ≤ K ≤ V)가 주어진다. 셋째 줄부터 E개의 줄에 걸쳐 각 간선을 나타내는 세 개의 정수 (u, v, w)가 순서대로 주어진다. 이는 u에서 v로 가는 가중치 w인 간선이 존재한다는 뜻이다. u와 v는 서로 다르며 w는 10 이하의 자연수이다..
[백준] 11725번 트리의 부모 찾기 해설 및 풀이 (Python)
·
Study/코딩 테스트
백준 11725번 트리의 부모 찾기https://www.acmicpc.net/problem/11725 문제루트 없는 트리가 주어진다. 이때, 트리의 루트를 1이라고 정했을 때, 각 노드의 부모를 구하는 프로그램을 작성하시오.입력첫째 줄에 노드의 개수 N (2 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N-1개의 줄에 트리 상에서 연결된 두 정점이 주어진다.출력첫째 줄부터 N-1개의 줄에 각 노드의 부모 노드 번호를 2번 노드부터 순서대로 출력한다.문제 유형 그래프 이론그래프 탐색트리너비 우선 탐색깊이 우선 탐색 풀이 방법 도출트리는 n+1 크기의 리스트를 만들어 인접 리스트 형식으로 저장합니다.주어진 간선 정보를 통해 양방향으로 연결합니다.루트 노드를 1로 설정하고 DFS 탐색을 수행합니다.DF..
[백준] 7576번 토마토 해설 및 풀이 (Python)
·
Study/코딩 테스트
백준 7576번 토마토https://www.acmicpc.net/problem/7576 문제철수의 토마토 농장에서는 토마토를 보관하는 큰 창고를 가지고 있다. 토마토는 아래의 그림과 같이 격자 모양 상자의 칸에 하나씩 넣어서 창고에 보관한다.창고에 보관되는 토마토들 중에는 잘 익은 것도 있지만, 아직 익지 않은 토마토들도 있을 수 있다. 보관 후 하루가 지나면, 익은 토마토들의 인접한 곳에 있는 익지 않은 토마토들은 익은 토마토의 영향을 받아 익게 된다. 하나의 토마토의 인접한 곳은 왼쪽, 오른쪽, 앞, 뒤 네 방향에 있는 토마토를 의미한다. 대각선 방향에 있는 토마토들에게는 영향을 주지 못하며, 토마토가 혼자 저절로 익는 경우는 없다고 가정한다. 철수는 창고에 보관된 토마토들이 며칠이 지나면 다 익게 ..
[백준] 16953번 A → B 해설 및 풀이 (Python)
·
Study/코딩 테스트
백준 16953번 A → Bhttps://www.acmicpc.net/problem/16953문제정수 A를 B로 바꾸려고 한다. 가능한 연산은 다음과 같은 두 가지이다.2를 곱한다.1을 수의 가장 오른쪽에 추가한다. A를 B로 바꾸는데 필요한 연산의 최솟값을 구해보자.입력첫째 줄에 A, B (1 ≤ A 9)가 주어진다.출력A를 B로 바꾸는데 필요한 연산의 최솟값에 1을 더한 값을 출력한다. 만들 수 없는 경우에는 -1을 출력한다.문제 유형 그래프 이론그리디 알고리즘그래프 탐색너비 우선 탐색 풀이 방법 도출 BFS(너비 우선 탐색) 방식으로 탐색을 진행하면서 AAA에서 BBB로 변환하는 최단 경로를 찾는다. 큐(queue)에 (현재 숫자, 연산 횟수) 를 저장합니다.BFS를 수행하면서 다음 두 가지 연산을..
[백준] 1931번 회의실 배정 해설 및 풀이 (Python)
·
Study/코딩 테스트
백준 1931번 회의실 배정https://www.acmicpc.net/problem/1931  문제한 개의 회의실이 있는데 이를 사용하고자 하는 N개의 회의에 대하여 회의실 사용표를 만들려고 한다. 각 회의 I에 대해 시작시간과 끝나는 시간이 주어져 있고, 각 회의가 겹치지 않게 하면서 회의실을 사용할 수 있는 회의의 최대 개수를 찾아보자. 단, 회의는 한번 시작하면 중간에 중단될 수 없으며 한 회의가 끝나는 것과 동시에 다음 회의가 시작될 수 있다. 회의의 시작시간과 끝나는 시간이 같을 수도 있다. 이 경우에는 시작하자마자 끝나는 것으로 생각하면 된다.입력첫째 줄에 회의의 수 N(1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N+1 줄까지 각 회의의 정보가 주어지는데 이것은 공백을 사이에 두고..