[백준] 2869번 달팽이는 올라가고 싶다 해설 및 풀이 (Python)
·
Study/코딩 테스트
백준 2869번 달팽이는 올라가고 싶다https://www.acmicpc.net/problem/2869  문제땅 위에 달팽이가 있다. 이 달팽이는 높이가 V미터인 나무 막대를 올라갈 것이다.달팽이는 낮에 A미터 올라갈 수 있다. 하지만, 밤에 잠을 자는 동안 B미터 미끄러진다. 또, 정상에 올라간 후에는 미끄러지지 않는다.달팽이가 나무 막대를 모두 올라가려면, 며칠이 걸리는지 구하는 프로그램을 작성하시오.입력첫째 줄에 세 정수 A, B, V가 공백으로 구분되어서 주어진다. (1 ≤ B 출력첫째 줄에 달팽이가 나무 막대를 모두 올라가는데 며칠이 걸리는지 출력한다. 문제 유형수학 풀이 방법 도출 달팽이는 낮 동안 A 미터를 올라가고, 밤에 B 미터를 미끄러집니다. 따라서 하루에 실질적으로 올라가는 거리는 A..
[백준] 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를 수행하면서 다음 두 가지 연산을..