![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/cSr7gc/btqDsN9Yr0o/tgKwT9ZUzkCYrickUDPcIK/img.png)
1. 문제 링크 https://www.acmicpc.net/problem/2966 2966번: 찍기 문제 상근이, 창영이, 현진이는 역사와 전통을 자랑하는 Sogang ACM-ICPC Team에 가입하려고 한다. 하지만, 가입하려고 하는 모든 지원자는 C언어 필기시험을 통과해야 한다. 이들은 C언어를 할 줄 모른다. 따라서, 필기시험을 모두 찍으려고 한다. 상근이는 A, B, C, A, B, C, A, B, C, A, B, C, ...와 같이 찍어야 통과할 수 있다고 생각한다. 하지만, 창영이는 B, A, B, C, B, A, B, C, B, A, B www.acmicpc.net 2. 문제 개요 상근이는 A B C A B C A B C... 창영이는 B A B C B A B C B... 현진이는 C C ..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/EzllZ/btqDogyYomN/BkUcVC1ZMhTZO03UrKzKL1/img.png)
1. 문제 링크 https://www.acmicpc.net/problem/1967 1967번: 트리의 지름 파일의 첫 번째 줄은 노드의 개수 n(1 ≤ n ≤ 10,000)이다. 둘째 줄부터 n번째 줄까지 각 간선에 대한 정보가 들어온다. 간선에 대한 정보는 세 개의 정수로 이루어져 있다. 첫 번째 정수는 간선이 연결하는 두 노드 중 부모 노드의 번호를 나타내고, 두 번째 정수는 자식 노드를, 세 번째 정수는 간선의 가중치를 나타낸다. 간선에 대한 정보는 부모 노드의 번호가 작은 것이 먼저 입력되고, 부모 노드의 번호가 같으면 자식 노드의 번호가 작은 것이 먼 www.acmicpc.net 2. 문제 개요 트리에서 어떤 두 노드를 선택해서 양쪽으로 쫙 당길 때, 가장 길게 늘어나는 경우가 있을 것이다. 이..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/b55nrs/btqDn1vjrjq/iw90Z3TwuZLhKjkj8yTerk/img.png)
1. 문제 링크 https://www.acmicpc.net/problem/1991 1991번: 트리 순회 첫째 줄에는 이진 트리의 노드의 개수 N(1≤N≤26)이 주어진다. 둘째 줄부터 N개의 줄에 걸쳐 각 노드와 그의 왼쪽 자식 노드, 오른쪽 자식 노드가 주어진다. 노드의 이름은 A부터 차례대로 영문자 대문자로 매겨지며, 항상 A가 루트 노드가 된다. 자식 노드가 없는 경우에는 .으로 표현된다. www.acmicpc.net 2. 문제 개요 전위, 중위, 후위 순회한 결과를 출력하자. 3. 문제 힌트 재귀 함수로 구현해야 한다. 전, 중, 후위는 값을 출력하는 시간이다. 4. 문제풀이 재귀 함수에 익숙하지 않은 분들이 책에서만 본 내용을 구현하기엔 쉽지 않을 것이다. 전위 순회를 예로 들면 방문하자마자 ..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/b5GhVG/btqDjG5PXuH/vsfsuVVmCetkk2C6KivXb0/img.png)
1. 문제 링크 https://codeforces.com/contest/1324/problem/F Problem - F - Codeforces codeforces.com 2. 문제 개요 n개의 정점, n-1개의 간선을 가진 tree가 주어진다. 트리의 값이 0이면 black, 1이면 white이다. 3. 문제 힌트 DP top-down , bottom - up 2가지를 모두 써야 한다. dp[index]를 정의해야 하는데, dp[next] += max(dp[cur],0) 모두 연결된 간선에 대해서 max를 반복해야 할 것이다. 4. 문제 풀이 힌트의 의미를 문제의 흐름과 함께 풀어보자. 일단 dp의 초기값은 검은색이면 -1, 흰색이면 1로 두고 시작하자. 예제의 그림을 보면, 다음과 같다. 루트는 의미 ..
1. 문제 링크 https://www.acmicpc.net/problem/9205 9205번: 맥주 마시면서 걸어가기 문제 송도에 사는 상근이와 친구들은 송도에서 열리는 펜타포트 락 페스티벌에 가려고 한다. 올해는 맥주를 마시면서 걸어가기로 했다. 출발은 상근이네 집에서 하고, 맥주 한 박스를 들고 출발한다. 맥주 한 박스에는 맥주가 20개 들어있다. 목이 마르면 안되기 때문에 50미터에 한 병씩 마시려고 한다. 상근이의 집에서 페스티벌이 열리는 곳은 매우 먼 거리이다. 따라서, 맥주를 더 구매해야 할 수도 있다. 미리 인터넷으로 조사를 해보니 다행히도 맥주를 파는 편의 www.acmicpc.net 2. 문제 개요 집에서 락 페스티벌로 가려고 한다. 맥주를 마시면서 걸어간다. 맥주 한 박스에는 맥주 20..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/xRgIK/btqDjHisGds/dksHk9KosgNkUU16Ml6iLK/img.png)
1. 문제 링크 https://www.acmicpc.net/problem/1017 1017번: 소수 쌍 지민이는 수의 리스트가 있을 때, 이를 짝지어 각 쌍의 합이 소수가 되게 하려고 한다. 예를 들어, {1, 4, 7, 10, 11, 12}가 있다고 하자. 지민이는 다음과 같이 그룹지을 수 있다. 1 + 4 = 5, 7 + 10 = 17, 11 + 12 = 23 또는 1 + 10 = 11, 4 + 7 = 11, 11 + 12 = 23 수의 리스트가 주어졌을 때, 지민이가 모든 수를 다 짝지었을 때, 첫 번째 수와 어떤 수를 짝지었는지 오름차순으로 출력하는 www.acmicpc.net 2. 문제 개요 수의 리스트가 있을 때, 이를 짝지어 각 쌍의 합이 소수가 되게 하려고 한다. 남는 수 없이 모두 쌍을 ..