SlideShare a Scribd company logo
1 of 14
Download to read offline
1
- 2017 본선 문제집 -
[A] 좋은 대회................................................................................2
[B] 월요병 .....................................................................................4
[C] 동방 보수 ...............................................................................6
[D] 새로운 수열............................................................................8
[E] 동혁이의 생일선물 .................................................................9
[F] 단신쓴짠................................................................................11
[G] 이상한 토너먼트 ..................................................................13
2
[A] 좋은 대회
문제 설명
대회를 열기 위해서는 굉장히 많은 요소들을 고려해야한다. 그리고 현정이는 어떤 의미로나
좋지 못한 대회를 만드는 것으로 유명하다. 문제 부분에 관해서도, 좋은 대회라고 생각되는
기준을 한 번도 만족해본 적이 없다. 현정이가 만들고 싶은 좋은 대회란 다음 세가지 조건을
모두 만족하는 대회를 말한다.
1. 모든 참가자가 한 문제 이상을 풀어야 한다.
2. 모든 문제는 한 명 이상의 참가자에게 풀려야 한다.
3. 모든 문제를 푼 참가자는 없어야 한다.
이런저런 경험을 겪으며 현정이는 이번에야말로 좋은 대회를 만들어내기 위해 모든 것을
바쳤다. 하지만 너무 많은 것을 바쳤는지 대회가 끝나기 전에 쓰러져버렸다. 눈을 뜬
현정이는 가장 먼저 대회 결과를 보고 이번 대회가 좋은 대회였는지를 알고싶어했다.
서둘러 대회 홈페이지에 접속한 현정이는 대회 결과를 나타내는 스코어보드를 찾아냈다.
하지만 현정이의 노트북은 모니터의 오른쪽 상단이 삼각형 모양으로 깨져있어 전체
스코어보드의 모습을 보지 못했다.
스코어보드는 더 많은 문제를 맞춘 참가자가 더 순위가 높고, 1 등이 가장 위에 위치해
순위대로 정렬되어있는 형태다. 현정이의 모니터는 ◥모양으로 깨져있기 때문에 볼 수 있는
스코어보드의 형태는 아래 규칙을 모두 만족한다.
1. 𝑖 등 참가자의 𝑥 번 문제 결과를 볼 수 있다면 (𝑖 + 1)	~	𝑁등 참가자의 x 번 문제
결과 역시 볼 수 있다.
2. 𝑖 등 참가자의 𝑥 번 문제 결과를 볼 수 없다면, 1	~	(𝑖 − 1) 등 참가자의 x 번 문제
결과 역시 볼 수 없다.
3. 𝑖 등 참가자의 𝑥 번 문제 결과를 볼 수 있다면, 1	~	𝑥 번 문제 결과 역시 볼 수 있다.
4. 𝑖 등 참가자의 𝑥 번 문제 결과를 볼 수 없다면, 𝑥	~	𝑀 번 문제 결과 역시 볼 수
없다.
현정이가 알 수 있는 것은 각 참가자들이 몇 문제를 풀었는지와 어떤 문제를 풀었는지에
대한 부분적인 정보이다. 현정이는 머릿속에서 행복회로를 가동하기 시작했다. 모니터가 깨져
볼 수 없는 부분을 자신이 원하는대로 채워 이 대회가 좋은대회였을 것이라고 믿는 것이다.
물론 각 참가자들이 맞춘 문제수와 볼 수 있는 결과들이 변경될 수는 없다. 깨어진 모니터에
보이는 스코어보드 정보가 주어졌을 때, 이 대회가 좋은 대회가 될 수 있는지를 알아보자.
3
입력 조건
첫 줄에 이번 대회의 참가자의 𝑁(1 ≤ 𝑁 ≤ 100)과 문제의 수 𝑀(1 ≤ 𝑀 ≤ 10)이 주어진다.
다음 𝑁	개의 줄에는 1 등부터 𝑁	등까지, 𝑖	등 참가자의 맞춘 문제 수 𝐾/(0 ≤ 𝐾/ ≤ 𝑀)와 해당
참가자의 1 ~ M 번 문제에 대한 결과가 𝑀 개가 주어진다. 결과는 맞았다면 1, 틀렸다면 0,
찢어져 결과를 알 수 없다면 -1 로 주어진다.
출력 조건
좋은대회가 될 수 있다면 “YES”, 아니라면 “NO”를 출력한다.
예제 입력 1 예상 출력 1
4 5
4 1 1 -1 -1 -1
3 1 0 -1 -1 -1
2 1 0 1 0 -1
1 1 0 0 0 -1
YES
예시 입력 예상 출력
5 7
4 1 1 1 -1 -1 -1 -1
3 1 1 1 0 -1 -1 -1
3 1 0 1 0 -1 -1 -1
2 1 0 0 0 1 -1 -1
1 0 0 1 0 0 -1 -1
NO
Hint
아래는 1 번 예제가 좋은 대회가 될 수 있는 다양한 결과 중 하나이다.
1 1 0 1 1
1 0 1 0 1
1 0 1 0 0
1 0 0 0 0
4
[B] 월요병
문제 설명
일요일 밤, 내일 학교에 가는 것이 괴로워지기 시작했다.
학교에 가지 않을 핑계를 만들기 위해서, 집에서 학교로 가는 길에 벽을 잘 세워 집에서
학교로 가는 길을 모두 막기로 결정하였다.
학교와 집이 있는 동네는 𝑁 ∗ 𝑀의 칸으로 이루어져있다. 집은 (1, 1)에 위치하고, 학교는 (𝑁,
𝑀)에 위치한다.
각각의 칸은 3 가지 종류로 나뉜다.
1. 이미 벽이 존재하는 칸 (-2 로 나타낼 것이다.)
2. 벽이 존재하지 않으며, 벽을 세울 수 없는 칸 (-1 로 나타낼 것이다.)
3. 벽이 존재하지 않으며, 비용을 지불하면 벽을 세울 수 있는 칸 (비용이 적혀있을
것이다.)
우리는 3 번 종류의 칸에 적절히 벽을 세워서 집에서 학교로 가는 길을 막을 것이다. 단,
돈을 절약하기 위해서 비용을 최소로 하고 싶다. 다만 어떻게 벽을 지어도 막을 수 없는
경우가 있을 수 있는데, 이러한 경우도 판단해서 알려주어야 한다.
집에서 학교로 이동할 때는 상하좌우로만 이동할 수 있으며(대각선 방향으로는 이동할 수
없다), 주어진 격자판(𝑁 ∗ 𝑀) 밖으로 이동할 수 없다. 또한, 집과 학교가 위치한 칸은 벽을
세울 수 없는 칸임이 보장된다.
입력 조건
첫 번째 줄에는 지도의 행의 수 𝑁, 열의 수 𝑀이 공백을 사이로 주어진다. (2 ≤ 𝑁, 𝑀 ≤ 300)
다음 𝑁 줄에는 각각 𝑀 개 정수가 주어진다. -2 는 벽이 있음을 의미하고, -1 은 벽을 세울
수 없는 장소를 의미하며, 0 이상의 숫자들은 벽을 세울 수 있는 장소이며, 숫자는 벽을
세우는 비용을 의미한다. (비용 값은 10 억을 넘지 않는 정수이다.) 𝑖 번째 줄의 𝑗 번째
문자는 (𝑖, 𝑗)의 정보를 나타낸다.
집과 학교가 위치한 칸((1, 1)와 (𝑁, 𝑀))에는 -1 가 들어옴이 보장된다.
5
출력 조건
첫째 줄에 학교를 갈 수 없게 만드는 최소 비용을 출력한다. 단, 학교를 갈 수 없게 길을
막을 수 없다면, -1 을 출력한다
예제 입력 1 예제 출력 1
3 3
-1 1 -2
1 1 1
1 1 -1
2
예제 입력 2 예제 출력 2
5 5
-1 -1 5 -2 -2
-1 5 7 8 4
-2 5 -2 9 1
-2 8 11 2 -1
-2 9 1 -1 -1
4
예제 입력 3 예제 출력 3
5 5
-1 -1 -1 -2 -2
-1 5 -1 -1 -1
-2 -2 -2 9 -1
-2 8 11 2 -1
-2 9 1 -1 -1
-1
Hint
예제 1 설명
..#
.*.
.*.
으로 막으면 가능하다,
6
[C] 동방 보수
문제 설명
아주대학교에는 𝑁개의 동아리방이 있었다. 빅-종빈빌런이 나타나기 전까지는. 어느날 나타난
빅-종빈빌런은 아주대학교의 모든 동아리방을 파괴하고, 동아리들을 내쫓았다. 빅-
종빈빌런이 떠난 자리에는 무너져내린 동방만이 남았다.
𝑀 개의 동방 없는 동아리들은 각자 𝑆/(1 ≤ 𝑖	 ≤ 𝑀)만큼의 예산을 가지고 있다. 각 동아리는
최대 이 예산을 사용하여 동아리방을 재건하려고 한다. 각 동방을 다시 사용할 수 있기
위해서는 보수비용으로 𝐶/(1 ≤ 𝑖	 ≤ 𝑁)원이 필요하다. 한 동방은 하나의 동아리에 배정될 수
있으며, 하나의 동아리는 하나의 동방만을 가질 수 있다. 각 동아리는 보수를 하고 돈이
남는다고 해서 다른 동아리에 돈을 보태주지는 않는다.
종빈이는 소속된 소학회가 동방이 없어 동방 없는 동아리가 얼마나 서러운지 잘 안다. 이에
최대한 많은 동아리가 동방을 가질 수 있게 도와주려 한다. 종빈이가 도울 것은 당연히
예산이 부족해 동아리방을 얻지 못하는 동아리들이다. 종빈이는 이러한 동아리들에게 동방
보수 비용을 보태주려고 한다.
종빈이가 도와줄 수 있는 금액의 합계가 최대 𝑋원이라고 할 때, 동방을 가질 수 있는
동아리는 최대 몇 개일지를 알아보자.
입력 조건
첫 줄에 𝑁(1 ≤ 𝑁 ≤ 100,000), 𝑀(1 ≤ 𝑀 ≤ 100,000), 𝑋 0 ≤ 𝑋 ≤ 1,000,000,000 가
주어진다. 두 번째 줄에 𝑁개의 동방 보수비용 𝐶/(0 ≤ 𝐶/ ≤ 1,000,000,000)가 차례로
주어진다. 세 번째 줄에 𝑀개의 동아리의 예산 𝑆/(0 ≤ 𝑆/ ≤ 1,000,000,000) 가 차례로
주어진다.
출력 조건
동방을 가질 수 있는 동아리의 최대 개수를 한 줄에 출력한다.
예제 입력 1 예상 출력 1
3 4 0
1 2 3
3 3 3 3
3
7
예시 입력 예상 출력
5 4 3
5 8 9 1 7
2 10 5 3
3
Hint
2 번 예제에서 각 동아리방을 고치는데 비용이 5, 8, 9, 1, 7 이고 각 동아리 들은 2, 10, 5,
3 의 금액을 가지고 있다.
이때 2 번 동아리에 3 번방, 4 번 동아리에 4 번방 배정하면 종빈이가 돈을 지원해 줄 필요가
없고 3 번동아리에 1 번방을 배정하면 종빈이가 2 원을 지원해주면서 종빈이의 도와줄 수
있는 금액 한도 내에서 3 개의 동아리가 동아리방을 배정받을 수 있게 된다.
어떻게 배정해도 4 개의 동아리가 모두 방을 배정받을 순 없다.
8
[D] 새로운 수열
문제 설명
다음과 같은 수열 A 가 주어졌을 때,
A = { }
새로운 수열 B 는 다음과 같이 정의된다.
B =
수열 A 가 주어지면, 수열 B 를 구해보자.
입력 조건
첫 줄에 𝑁(1 ≤ 𝑁 ≤ 300,000)이 주어진다. 두번째 줄에 𝑁개의 정수 𝑎/(|𝑎/| ≤ 10:
)가
공백으로 구분되어 주어진다.
출력 조건
첫 번째 줄에 수열 𝐵를 구성하는 𝑁개의 정수 𝑏/를	공백으로	구분하여	출력한다.
예제 입력 1 예상 출력 1
3
4 1 -3
-7 19 -8
예시 입력 예상 출력
5
-1 2 -3 4 -5
-55 35 -12 -12 35
Hint
예제 1 에서 의 B 는 다음과 같이 구해진다.
𝑏> = 4 ­ 2 + (-9) = -7
𝑏? = 1 ­ (-6) + 12 = 19
𝑏@ = (-3) ­ 8 + 3 = -8
9
[E] 동혁이의 생일선물
문제 설명
동혁이에게는 𝑁명의 친구가 있다. 동혁이의 생일은 4 월 14 일인데, 친구들은 그 날
동혁이에게 수열을 선물하려 했다. 하지만 그 수열을 구성하는 숫자가 너무 많았기
때문에 수열 전체를 선물하는 대신에 수열을 만들 수 있는 숫자 𝑥만 선물하였고,
동혁이에게 수열을 만드는 방법을 전수해 줬다. 이제 7 월 1 일인 오늘, 친구들은
동혁이가 자신들의 선물을 얼마나 소중히 여겼는지 확인하기 위해 선물한 수열의
𝐾번째 수를 물어보려 한다. 동혁이가 제대로 대답을 하지 못한다면, 친구들은
실망하고 떠나갈 것이다. 하지만 동혁이는 돈도 안되는 수열엔 관심이 없었기 때문에
하나도 외우지 못했다. 동혁이가 지금 당장 친구들의 물음에 빠르게 답할 수 있도록
도와주자.
𝑖번째 친구가 선물한 숫자 𝑥/로 만들 수 있는 수열 𝑀/	(1 ≤ 𝑖 ≤ 𝑁)는 다음과 같은
규칙을 갖는다. 숫자 𝑥/의 거듭제곱을 원소로 하는 집합을 𝐴라 할 때(	𝐴 =
𝑥/
>
, 𝑥/
?
, 𝑥/
@
, … 	), 집합 𝐴의 공집합을 제외한 모든 부분집합을 𝐴D 𝑓 ≥ 0, 𝑓 ∈ ℤ 라
하자. 여기서 집합 𝐴I(𝑗 ∈ 𝑓)의 모든 원소들의 합을 𝑎I라 하면, 수열 𝑀/는 𝑎I(𝑗 ∈ 𝑓)로
구성된다. (단, 𝑴𝒊는 중복되는 값을 갖지 않는 증가수열이다.)
수열 𝑀/에 대해 좀 더 풀어서 설명하면 다음과 같다.
집합 𝐴 = 𝑥/
>
, 𝑥/
?
, 𝑥/
@
, … 의 공집합을 제외한 모든 부분집합을 다음과 같이 나열할
수 있다.
𝐴>, 𝐴?, 𝐴@, …
그리고 각각의 부분집합의 합은 다음과 같다.
𝑎>, 𝑎?, 𝑎@, …
10
이제 𝑖번째 친구가 선물한 𝑥/로 만들 수 있는 수열 𝑀/는 𝑎>, 𝑎?, 𝑎@, … 를 오름차순으로
정렬한 수열이다.
입력 설명
첫째 줄에 친구의 수 𝑁(1 ≤ 𝑁 ≤ 100,000)이 주어진다. 그 후 𝑁줄에 걸쳐 친구들이
선물한 숫자 𝑥(2 ≤ 𝑥 ≤ 1,000) 와 친구들이 질문하고 싶어하는 𝐾(1 ≤ 𝐾 ≤
1,000,000,000)가 주어진다.
출력 설명
숫자 𝑥/	(1 ≤ 𝑖 ≤ 𝑁)로 구성된 수열 𝑀/	(1 ≤ 𝑖 ≤ 𝑁)의 𝐾번째 수를 모두 구한 뒤,
전부 더한 값을 1,000,000,007 로 나눈 나머지를 출력한다.
예제 입력 1 예상 출력 1
1
3 5
10
예시 입력 예상 출력
2
5 10
3 7
143
11
[F] 단신쓴짠
문제 설명
사람의 신체는 안전하고 위험한 음식을 구별할 수 있는 방법이 필요하다. 인간의 혀는
대표적으로 네 가지 유형의 맛을 감지할 수 있는데 단맛, 신맛, 쓴맛, 짠맛이 그것이다.
우리가 흔히 말하는 맛있다, 맛없다의 맛에 관한 호불호는 이러한 단맛, 신맛, 쓴맛, 짠맛의
조합과 개인 기호에 기반한다.
하지만 준표는 맛을 느낄 수 없다. 신김치를 먹고 시지 않다고 말하는 준표를 보고 이를
알아챈 서현이는 준표가 위험한 맛들을 감지하지 못해 사고가 날까봐 걱정이 되었다.
서현이는 왜 준표가 맛을 느끼지 못하는지, 그리고 왜 자신의 미각이 정상이 아님을
인정하지 못하는지 조사하기 시작했고, 준표에게 1 ~ 𝑁 번으로 번호가 붙여진 𝑁 개의
미뢰가 존재하는 것을 알아냈다.
놀랍게도 준표의 미뢰들은 서로간의 연결관계를 통해 1 번 미뢰를 루트로 하는 하나의 이진
트리의 형태로 이루어져 있다. 하나의 트리는 하나의 미뢰집단이다. 일반적인 사람들은 𝑋 개
이상의 미뢰집단을 가지고 있다. 또한 맛이란 복합적인 것이기 때문에 각 미뢰집단은 적어도
𝐾 개 이상의 미뢰로 구성되어 있어야 제대로 된 역할을 할 수 있다. 서현이는 준표의 미뢰들
사이에 존재하는 연결관계를 끊어 준표가 일반사람들과 같이 𝐾 개 이상의 미뢰로 구성된
미뢰집단을 𝑋 개 이상 가지게 하고싶다.
하지만 연결관계를 끊을때마다 그 연결관계의 세기만큼 준표의 다른 신경계가 손상을 입을
수 있다. A 와 B 미뢰 사이의 연결이 서로에게 10 만큼의 영향을 주고 있다면, 이 연결관계를
끊었을때 준표도 10 만큼의 고통을 받게 되는 것이다. 미각이 돌아와도 다른 감각이 상처를
입으면 준표가 더더욱 힘든 삶을 살게 될 것이므로, 서현이는 끊어야하는 연결의 영향의 합,
즉 준표가 받을 고통의 합을 최소로 하고 싶다. 이때 준표가 다시 맛을 느끼기 위해서
받게될 최소 고통의 합은 얼마일지 알아보자.
입력 조건
첫 줄에 준표가 가진 미뢰의 개수 𝑁(1 ≤ 𝑁 ≤ 5,000), 한 미뢰집단이 정상적인 동작을 위해
가져야하는 최소 미뢰의 수 𝐾(1 ≤ 𝐾 ≤ 100), 보통사람처럼 맛을 느끼기 위해서 필요한 최소
정상 미뢰집단의 수 𝑋(1 ≤ 𝑋 ≤ 100) 가 주어진다.
이후 N-1 개 줄에 걸쳐 𝑖(2 ≤ 𝑖 ≤ 𝑁)번 미뢰의 정보 𝑃/(1 ≤ 𝑃/ ≤ 𝑁), 𝐶/(0 ≤ 𝐾/ ≤ 100,000)
가 주어진다. 이는 i 번 미뢰의 부모가 𝑃/	번 미뢰이며, 이 둘 사이를 끊게 되면 𝐶/만큼의
고통이 발생함을 의미한다. 1 번 미뢰는 루트이므로 정보가 들어오지 않는다.
12
출력 설명
준표가 다시 맛을 느끼기 위해 겪어야하는 고통의 합의 최소값을 출력한다. 만약 준표가
어떻게 해도 미각을 되찾을 수 없는 상태라면 -1 을 출력한다.
예제 입력 1 예제 출력 1
3 1 3
1 4
1 3
7
예제 입력 2 예제 출력 2
7 3 2
1 5
2 6
2 7
3 4
4 2
4 1
7
Hint
2 번 예제에서 2 번 미뢰와 4 번 미뢰 사이의 연결을 끊는 것이 고통의 합이 최소가 된다.
13
[G] 이상한 토너먼트
문제 설명
천하제일코딩대회가 열리게 되었다. 천하제일코딩대회는 1 대 1 대결 토너먼트 방식으로
진행이 된다. 대회 운영을 맡은 전설의 코더 천민호는 개인의 코딩실력을 정확히 측정하는
스카우터를 만들어 각 참가자의 코딩력(능력치)을 알고 있다. 코딩력이 다른 두 사람이
대결을 하게되면 무조건 코딩력이 높은 사람이 승리하게 된다. (사실상 우승자는 정해져있는
것이나 다름없다.)
토너먼트 대진표를 작성하기 귀찮았던 민호는 우선 참가신청한 사람들의 순서대로 일렬로
나열한 후, 선을 그어 대진표를 완성하려 한다. 민호는 대회의 재미를 위해서 관중들이
지루하지 않도록 대진표를 완성하고 싶다. 일반적으로 관중들의 지루함 정도는 두 대결자의
코딩력의 차에 비례한다.
관중들의 지루함 = 두 대결자의 코딩력 차
라고 하였을 때, 모든 토너먼트가 끝난 후 지루함의 합이 최소가 되도록 대진표를 작성하려
한다. 이 때, 지루함의 합을 구하여라.
*대진표의 선을 어떻게 작성하냐에 따라 각 참가자의 경기수는 다를 수 있다.
*대진표의 선이 교차되게 작성하면 안 된다. (이웃한 두 그룹 간 대결할 수 있다.)
그림 1 최적의 경우 (총 지루함:1997) 그림 2 최악의 경우 (총 지루함:7848)
위 그림과 같은 경우 그림 1 의 방식으로 대진표를 작성하였을 때, 총 지루함은 1997 이지만
그림 2 의 방식으로 대진표를 작성하였을 때, 총 지루함은 7848 이 된다.
14
입력 조건
첫째줄에 총 참가자의 수 𝑁(2 ≤ 𝑁 ≤ 500)이 주어진다. 그 후 N 줄에 걸쳐 참가신청한
순서에 맞추어 코딩력 𝑋/(1 ≤ 𝑋/ ≤ 100,000)이 주어진다. 코딩력이 같은 참가자는 없다.
출력 설명
대진표를 최적의 경우로 작성하였을 때, 총 지루함의 값을 출력한다.
예제 입력 1 예제 출력 1
5
2017
100
20
30
70
1997
예제 입력 2 예제 출력 2
3
50
40
20
30

More Related Content

What's hot

[한양대 aloha] 프로그래밍 경진대회 문제_advanced part
[한양대 aloha] 프로그래밍 경진대회 문제_advanced part[한양대 aloha] 프로그래밍 경진대회 문제_advanced part
[한양대 aloha] 프로그래밍 경진대회 문제_advanced partNAVER D2
 
[KAIST - RUN] 프로그래밍 경진대회 문제 풀이
[KAIST - RUN] 프로그래밍 경진대회 문제 풀이[KAIST - RUN] 프로그래밍 경진대회 문제 풀이
[KAIST - RUN] 프로그래밍 경진대회 문제 풀이NAVER D2
 
2015 한양대학교 프로그래밍 경시대회 - beginner division
2015 한양대학교 프로그래밍 경시대회 - beginner division2015 한양대학교 프로그래밍 경시대회 - beginner division
2015 한양대학교 프로그래밍 경시대회 - beginner divisionNAVER D2
 
서울대학교 2017 SNUPC 문제 - Advanced
서울대학교 2017 SNUPC 문제 -  Advanced서울대학교 2017 SNUPC 문제 -  Advanced
서울대학교 2017 SNUPC 문제 - AdvancedNAVER D2
 
[D2 CAMPUS] 2016 한양대학교 프로그래밍 경시대회 문제
[D2 CAMPUS] 2016 한양대학교 프로그래밍 경시대회 문제[D2 CAMPUS] 2016 한양대학교 프로그래밍 경시대회 문제
[D2 CAMPUS] 2016 한양대학교 프로그래밍 경시대회 문제NAVER D2
 
인하대 프로그래밍 경진대회 - 문제
인하대 프로그래밍 경진대회 - 문제인하대 프로그래밍 경진대회 - 문제
인하대 프로그래밍 경진대회 - 문제NAVER D2
 
[D2 CAMPUS] 숭실대 SCCC 프로그래밍 경시대회 문제
[D2 CAMPUS] 숭실대 SCCC 프로그래밍 경시대회 문제[D2 CAMPUS] 숭실대 SCCC 프로그래밍 경시대회 문제
[D2 CAMPUS] 숭실대 SCCC 프로그래밍 경시대회 문제NAVER D2
 
[연세대 모르고리즘] 프로그래밍 경진대회 문제 풀이
[연세대 모르고리즘] 프로그래밍 경진대회 문제 풀이[연세대 모르고리즘] 프로그래밍 경진대회 문제 풀이
[연세대 모르고리즘] 프로그래밍 경진대회 문제 풀이NAVER D2
 
KAIST RUN 교내 ACM-ICPC 모의대회 Advanced division 문제
KAIST RUN 교내 ACM-ICPC 모의대회 Advanced division 문제KAIST RUN 교내 ACM-ICPC 모의대회 Advanced division 문제
KAIST RUN 교내 ACM-ICPC 모의대회 Advanced division 문제NAVER D2
 
[D2 CAMPUS] 숭실대 SCCC 프로그래밍 경시대회 문제 풀이
[D2 CAMPUS] 숭실대 SCCC 프로그래밍 경시대회 문제 풀이[D2 CAMPUS] 숭실대 SCCC 프로그래밍 경시대회 문제 풀이
[D2 CAMPUS] 숭실대 SCCC 프로그래밍 경시대회 문제 풀이NAVER D2
 
[D2 CAMPUS] 부산대 Alcall 프로그래밍 경시대회 문제
[D2 CAMPUS] 부산대 Alcall 프로그래밍 경시대회 문제[D2 CAMPUS] 부산대 Alcall 프로그래밍 경시대회 문제
[D2 CAMPUS] 부산대 Alcall 프로그래밍 경시대회 문제NAVER D2
 
KAIST RUN 교내 ACM-ICPC 모의대회 Advanced division 풀이
KAIST RUN 교내 ACM-ICPC 모의대회 Advanced division 풀이KAIST RUN 교내 ACM-ICPC 모의대회 Advanced division 풀이
KAIST RUN 교내 ACM-ICPC 모의대회 Advanced division 풀이NAVER D2
 
서울대학교 2017 SNUPC 문제
서울대학교 2017 SNUPC 문제서울대학교 2017 SNUPC 문제
서울대학교 2017 SNUPC 문제NAVER D2
 
한양대 2017 hcpc advanced division 문제
한양대 2017 hcpc advanced division 문제한양대 2017 hcpc advanced division 문제
한양대 2017 hcpc advanced division 문제NAVER D2
 
쏙 알고스터디 01
쏙 알고스터디 01쏙 알고스터디 01
쏙 알고스터디 01Jisu Lee
 
shake! 2016 예선 문제 풀이
shake! 2016 예선 문제 풀이shake! 2016 예선 문제 풀이
shake! 2016 예선 문제 풀이HYUNJEONG KIM
 
세미나
세미나세미나
세미나Dongyi Kim
 
[D2 CAMPUS] 2016 한양대학교 프로그래밍 경시대회 문제풀이
[D2 CAMPUS] 2016 한양대학교 프로그래밍 경시대회 문제풀이[D2 CAMPUS] 2016 한양대학교 프로그래밍 경시대회 문제풀이
[D2 CAMPUS] 2016 한양대학교 프로그래밍 경시대회 문제풀이NAVER D2
 
[D2 CAMPUS] 부산대 Alcall 프로그래밍 경시대회 문제 풀이
[D2 CAMPUS] 부산대 Alcall 프로그래밍 경시대회 문제 풀이[D2 CAMPUS] 부산대 Alcall 프로그래밍 경시대회 문제 풀이
[D2 CAMPUS] 부산대 Alcall 프로그래밍 경시대회 문제 풀이NAVER D2
 
[한양대 aloha] 프로그래밍 경진대회 문제_Advanced part
[한양대 aloha] 프로그래밍 경진대회 문제_Advanced part[한양대 aloha] 프로그래밍 경진대회 문제_Advanced part
[한양대 aloha] 프로그래밍 경진대회 문제_Advanced partNAVER D2
 

What's hot (20)

[한양대 aloha] 프로그래밍 경진대회 문제_advanced part
[한양대 aloha] 프로그래밍 경진대회 문제_advanced part[한양대 aloha] 프로그래밍 경진대회 문제_advanced part
[한양대 aloha] 프로그래밍 경진대회 문제_advanced part
 
[KAIST - RUN] 프로그래밍 경진대회 문제 풀이
[KAIST - RUN] 프로그래밍 경진대회 문제 풀이[KAIST - RUN] 프로그래밍 경진대회 문제 풀이
[KAIST - RUN] 프로그래밍 경진대회 문제 풀이
 
2015 한양대학교 프로그래밍 경시대회 - beginner division
2015 한양대학교 프로그래밍 경시대회 - beginner division2015 한양대학교 프로그래밍 경시대회 - beginner division
2015 한양대학교 프로그래밍 경시대회 - beginner division
 
서울대학교 2017 SNUPC 문제 - Advanced
서울대학교 2017 SNUPC 문제 -  Advanced서울대학교 2017 SNUPC 문제 -  Advanced
서울대학교 2017 SNUPC 문제 - Advanced
 
[D2 CAMPUS] 2016 한양대학교 프로그래밍 경시대회 문제
[D2 CAMPUS] 2016 한양대학교 프로그래밍 경시대회 문제[D2 CAMPUS] 2016 한양대학교 프로그래밍 경시대회 문제
[D2 CAMPUS] 2016 한양대학교 프로그래밍 경시대회 문제
 
인하대 프로그래밍 경진대회 - 문제
인하대 프로그래밍 경진대회 - 문제인하대 프로그래밍 경진대회 - 문제
인하대 프로그래밍 경진대회 - 문제
 
[D2 CAMPUS] 숭실대 SCCC 프로그래밍 경시대회 문제
[D2 CAMPUS] 숭실대 SCCC 프로그래밍 경시대회 문제[D2 CAMPUS] 숭실대 SCCC 프로그래밍 경시대회 문제
[D2 CAMPUS] 숭실대 SCCC 프로그래밍 경시대회 문제
 
[연세대 모르고리즘] 프로그래밍 경진대회 문제 풀이
[연세대 모르고리즘] 프로그래밍 경진대회 문제 풀이[연세대 모르고리즘] 프로그래밍 경진대회 문제 풀이
[연세대 모르고리즘] 프로그래밍 경진대회 문제 풀이
 
KAIST RUN 교내 ACM-ICPC 모의대회 Advanced division 문제
KAIST RUN 교내 ACM-ICPC 모의대회 Advanced division 문제KAIST RUN 교내 ACM-ICPC 모의대회 Advanced division 문제
KAIST RUN 교내 ACM-ICPC 모의대회 Advanced division 문제
 
[D2 CAMPUS] 숭실대 SCCC 프로그래밍 경시대회 문제 풀이
[D2 CAMPUS] 숭실대 SCCC 프로그래밍 경시대회 문제 풀이[D2 CAMPUS] 숭실대 SCCC 프로그래밍 경시대회 문제 풀이
[D2 CAMPUS] 숭실대 SCCC 프로그래밍 경시대회 문제 풀이
 
[D2 CAMPUS] 부산대 Alcall 프로그래밍 경시대회 문제
[D2 CAMPUS] 부산대 Alcall 프로그래밍 경시대회 문제[D2 CAMPUS] 부산대 Alcall 프로그래밍 경시대회 문제
[D2 CAMPUS] 부산대 Alcall 프로그래밍 경시대회 문제
 
KAIST RUN 교내 ACM-ICPC 모의대회 Advanced division 풀이
KAIST RUN 교내 ACM-ICPC 모의대회 Advanced division 풀이KAIST RUN 교내 ACM-ICPC 모의대회 Advanced division 풀이
KAIST RUN 교내 ACM-ICPC 모의대회 Advanced division 풀이
 
서울대학교 2017 SNUPC 문제
서울대학교 2017 SNUPC 문제서울대학교 2017 SNUPC 문제
서울대학교 2017 SNUPC 문제
 
한양대 2017 hcpc advanced division 문제
한양대 2017 hcpc advanced division 문제한양대 2017 hcpc advanced division 문제
한양대 2017 hcpc advanced division 문제
 
쏙 알고스터디 01
쏙 알고스터디 01쏙 알고스터디 01
쏙 알고스터디 01
 
shake! 2016 예선 문제 풀이
shake! 2016 예선 문제 풀이shake! 2016 예선 문제 풀이
shake! 2016 예선 문제 풀이
 
세미나
세미나세미나
세미나
 
[D2 CAMPUS] 2016 한양대학교 프로그래밍 경시대회 문제풀이
[D2 CAMPUS] 2016 한양대학교 프로그래밍 경시대회 문제풀이[D2 CAMPUS] 2016 한양대학교 프로그래밍 경시대회 문제풀이
[D2 CAMPUS] 2016 한양대학교 프로그래밍 경시대회 문제풀이
 
[D2 CAMPUS] 부산대 Alcall 프로그래밍 경시대회 문제 풀이
[D2 CAMPUS] 부산대 Alcall 프로그래밍 경시대회 문제 풀이[D2 CAMPUS] 부산대 Alcall 프로그래밍 경시대회 문제 풀이
[D2 CAMPUS] 부산대 Alcall 프로그래밍 경시대회 문제 풀이
 
[한양대 aloha] 프로그래밍 경진대회 문제_Advanced part
[한양대 aloha] 프로그래밍 경진대회 문제_Advanced part[한양대 aloha] 프로그래밍 경진대회 문제_Advanced part
[한양대 aloha] 프로그래밍 경진대회 문제_Advanced part
 

Similar to [SHAKE] 경인지역 6개연합 프로그래밍 경시대회 - 본선문제

입체충돌처리
입체충돌처리입체충돌처리
입체충돌처리quxn6
 
05. k means clustering ( k-means 클러스터링)
05. k means clustering ( k-means 클러스터링)05. k means clustering ( k-means 클러스터링)
05. k means clustering ( k-means 클러스터링)Jeonghun Yoon
 
이산치수학 Project3
이산치수학 Project3이산치수학 Project3
이산치수학 Project3KoChungWook
 
Ensemble Model (Hybrid model)
Ensemble Model (Hybrid model)Ensemble Model (Hybrid model)
Ensemble Model (Hybrid model)Jeonghun Yoon
 
페리 수열(Farey sequence)
페리 수열(Farey sequence)페리 수열(Farey sequence)
페리 수열(Farey sequence)종빈 오
 

Similar to [SHAKE] 경인지역 6개연합 프로그래밍 경시대회 - 본선문제 (7)

입체충돌처리
입체충돌처리입체충돌처리
입체충돌처리
 
internetinternet
internetinternetinternetinternet
internetinternet
 
05. k means clustering ( k-means 클러스터링)
05. k means clustering ( k-means 클러스터링)05. k means clustering ( k-means 클러스터링)
05. k means clustering ( k-means 클러스터링)
 
이산치수학 Project3
이산치수학 Project3이산치수학 Project3
이산치수학 Project3
 
Ensemble Model (Hybrid model)
Ensemble Model (Hybrid model)Ensemble Model (Hybrid model)
Ensemble Model (Hybrid model)
 
2016 UCPC 풀이
2016 UCPC 풀이2016 UCPC 풀이
2016 UCPC 풀이
 
페리 수열(Farey sequence)
페리 수열(Farey sequence)페리 수열(Farey sequence)
페리 수열(Farey sequence)
 

More from NAVER D2

[211] 인공지능이 인공지능 챗봇을 만든다
[211] 인공지능이 인공지능 챗봇을 만든다[211] 인공지능이 인공지능 챗봇을 만든다
[211] 인공지능이 인공지능 챗봇을 만든다NAVER D2
 
[233] 대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing: Maglev Hashing Scheduler i...
[233] 대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing: Maglev Hashing Scheduler i...[233] 대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing: Maglev Hashing Scheduler i...
[233] 대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing: Maglev Hashing Scheduler i...NAVER D2
 
[215] Druid로 쉽고 빠르게 데이터 분석하기
[215] Druid로 쉽고 빠르게 데이터 분석하기[215] Druid로 쉽고 빠르게 데이터 분석하기
[215] Druid로 쉽고 빠르게 데이터 분석하기NAVER D2
 
[245]Papago Internals: 모델분석과 응용기술 개발
[245]Papago Internals: 모델분석과 응용기술 개발[245]Papago Internals: 모델분석과 응용기술 개발
[245]Papago Internals: 모델분석과 응용기술 개발NAVER D2
 
[236] 스트림 저장소 최적화 이야기: 아파치 드루이드로부터 얻은 교훈
[236] 스트림 저장소 최적화 이야기: 아파치 드루이드로부터 얻은 교훈[236] 스트림 저장소 최적화 이야기: 아파치 드루이드로부터 얻은 교훈
[236] 스트림 저장소 최적화 이야기: 아파치 드루이드로부터 얻은 교훈NAVER D2
 
[235]Wikipedia-scale Q&A
[235]Wikipedia-scale Q&A[235]Wikipedia-scale Q&A
[235]Wikipedia-scale Q&ANAVER D2
 
[244]로봇이 현실 세계에 대해 학습하도록 만들기
[244]로봇이 현실 세계에 대해 학습하도록 만들기[244]로봇이 현실 세계에 대해 학습하도록 만들기
[244]로봇이 현실 세계에 대해 학습하도록 만들기NAVER D2
 
[243] Deep Learning to help student’s Deep Learning
[243] Deep Learning to help student’s Deep Learning[243] Deep Learning to help student’s Deep Learning
[243] Deep Learning to help student’s Deep LearningNAVER D2
 
[234]Fast & Accurate Data Annotation Pipeline for AI applications
[234]Fast & Accurate Data Annotation Pipeline for AI applications[234]Fast & Accurate Data Annotation Pipeline for AI applications
[234]Fast & Accurate Data Annotation Pipeline for AI applicationsNAVER D2
 
Old version: [233]대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing
Old version: [233]대형 컨테이너 클러스터에서의 고가용성 Network Load BalancingOld version: [233]대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing
Old version: [233]대형 컨테이너 클러스터에서의 고가용성 Network Load BalancingNAVER D2
 
[226]NAVER 광고 deep click prediction: 모델링부터 서빙까지
[226]NAVER 광고 deep click prediction: 모델링부터 서빙까지[226]NAVER 광고 deep click prediction: 모델링부터 서빙까지
[226]NAVER 광고 deep click prediction: 모델링부터 서빙까지NAVER D2
 
[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기
[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기
[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기NAVER D2
 
[224]네이버 검색과 개인화
[224]네이버 검색과 개인화[224]네이버 검색과 개인화
[224]네이버 검색과 개인화NAVER D2
 
[216]Search Reliability Engineering (부제: 지진에도 흔들리지 않는 네이버 검색시스템)
[216]Search Reliability Engineering (부제: 지진에도 흔들리지 않는 네이버 검색시스템)[216]Search Reliability Engineering (부제: 지진에도 흔들리지 않는 네이버 검색시스템)
[216]Search Reliability Engineering (부제: 지진에도 흔들리지 않는 네이버 검색시스템)NAVER D2
 
[214] Ai Serving Platform: 하루 수 억 건의 인퍼런스를 처리하기 위한 고군분투기
[214] Ai Serving Platform: 하루 수 억 건의 인퍼런스를 처리하기 위한 고군분투기[214] Ai Serving Platform: 하루 수 억 건의 인퍼런스를 처리하기 위한 고군분투기
[214] Ai Serving Platform: 하루 수 억 건의 인퍼런스를 처리하기 위한 고군분투기NAVER D2
 
[213] Fashion Visual Search
[213] Fashion Visual Search[213] Fashion Visual Search
[213] Fashion Visual SearchNAVER D2
 
[232] TensorRT를 활용한 딥러닝 Inference 최적화
[232] TensorRT를 활용한 딥러닝 Inference 최적화[232] TensorRT를 활용한 딥러닝 Inference 최적화
[232] TensorRT를 활용한 딥러닝 Inference 최적화NAVER D2
 
[242]컴퓨터 비전을 이용한 실내 지도 자동 업데이트 방법: 딥러닝을 통한 POI 변화 탐지
[242]컴퓨터 비전을 이용한 실내 지도 자동 업데이트 방법: 딥러닝을 통한 POI 변화 탐지[242]컴퓨터 비전을 이용한 실내 지도 자동 업데이트 방법: 딥러닝을 통한 POI 변화 탐지
[242]컴퓨터 비전을 이용한 실내 지도 자동 업데이트 방법: 딥러닝을 통한 POI 변화 탐지NAVER D2
 
[212]C3, 데이터 처리에서 서빙까지 가능한 하둡 클러스터
[212]C3, 데이터 처리에서 서빙까지 가능한 하둡 클러스터[212]C3, 데이터 처리에서 서빙까지 가능한 하둡 클러스터
[212]C3, 데이터 처리에서 서빙까지 가능한 하둡 클러스터NAVER D2
 
[223]기계독해 QA: 검색인가, NLP인가?
[223]기계독해 QA: 검색인가, NLP인가?[223]기계독해 QA: 검색인가, NLP인가?
[223]기계독해 QA: 검색인가, NLP인가?NAVER D2
 

More from NAVER D2 (20)

[211] 인공지능이 인공지능 챗봇을 만든다
[211] 인공지능이 인공지능 챗봇을 만든다[211] 인공지능이 인공지능 챗봇을 만든다
[211] 인공지능이 인공지능 챗봇을 만든다
 
[233] 대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing: Maglev Hashing Scheduler i...
[233] 대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing: Maglev Hashing Scheduler i...[233] 대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing: Maglev Hashing Scheduler i...
[233] 대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing: Maglev Hashing Scheduler i...
 
[215] Druid로 쉽고 빠르게 데이터 분석하기
[215] Druid로 쉽고 빠르게 데이터 분석하기[215] Druid로 쉽고 빠르게 데이터 분석하기
[215] Druid로 쉽고 빠르게 데이터 분석하기
 
[245]Papago Internals: 모델분석과 응용기술 개발
[245]Papago Internals: 모델분석과 응용기술 개발[245]Papago Internals: 모델분석과 응용기술 개발
[245]Papago Internals: 모델분석과 응용기술 개발
 
[236] 스트림 저장소 최적화 이야기: 아파치 드루이드로부터 얻은 교훈
[236] 스트림 저장소 최적화 이야기: 아파치 드루이드로부터 얻은 교훈[236] 스트림 저장소 최적화 이야기: 아파치 드루이드로부터 얻은 교훈
[236] 스트림 저장소 최적화 이야기: 아파치 드루이드로부터 얻은 교훈
 
[235]Wikipedia-scale Q&A
[235]Wikipedia-scale Q&A[235]Wikipedia-scale Q&A
[235]Wikipedia-scale Q&A
 
[244]로봇이 현실 세계에 대해 학습하도록 만들기
[244]로봇이 현실 세계에 대해 학습하도록 만들기[244]로봇이 현실 세계에 대해 학습하도록 만들기
[244]로봇이 현실 세계에 대해 학습하도록 만들기
 
[243] Deep Learning to help student’s Deep Learning
[243] Deep Learning to help student’s Deep Learning[243] Deep Learning to help student’s Deep Learning
[243] Deep Learning to help student’s Deep Learning
 
[234]Fast & Accurate Data Annotation Pipeline for AI applications
[234]Fast & Accurate Data Annotation Pipeline for AI applications[234]Fast & Accurate Data Annotation Pipeline for AI applications
[234]Fast & Accurate Data Annotation Pipeline for AI applications
 
Old version: [233]대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing
Old version: [233]대형 컨테이너 클러스터에서의 고가용성 Network Load BalancingOld version: [233]대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing
Old version: [233]대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing
 
[226]NAVER 광고 deep click prediction: 모델링부터 서빙까지
[226]NAVER 광고 deep click prediction: 모델링부터 서빙까지[226]NAVER 광고 deep click prediction: 모델링부터 서빙까지
[226]NAVER 광고 deep click prediction: 모델링부터 서빙까지
 
[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기
[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기
[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기
 
[224]네이버 검색과 개인화
[224]네이버 검색과 개인화[224]네이버 검색과 개인화
[224]네이버 검색과 개인화
 
[216]Search Reliability Engineering (부제: 지진에도 흔들리지 않는 네이버 검색시스템)
[216]Search Reliability Engineering (부제: 지진에도 흔들리지 않는 네이버 검색시스템)[216]Search Reliability Engineering (부제: 지진에도 흔들리지 않는 네이버 검색시스템)
[216]Search Reliability Engineering (부제: 지진에도 흔들리지 않는 네이버 검색시스템)
 
[214] Ai Serving Platform: 하루 수 억 건의 인퍼런스를 처리하기 위한 고군분투기
[214] Ai Serving Platform: 하루 수 억 건의 인퍼런스를 처리하기 위한 고군분투기[214] Ai Serving Platform: 하루 수 억 건의 인퍼런스를 처리하기 위한 고군분투기
[214] Ai Serving Platform: 하루 수 억 건의 인퍼런스를 처리하기 위한 고군분투기
 
[213] Fashion Visual Search
[213] Fashion Visual Search[213] Fashion Visual Search
[213] Fashion Visual Search
 
[232] TensorRT를 활용한 딥러닝 Inference 최적화
[232] TensorRT를 활용한 딥러닝 Inference 최적화[232] TensorRT를 활용한 딥러닝 Inference 최적화
[232] TensorRT를 활용한 딥러닝 Inference 최적화
 
[242]컴퓨터 비전을 이용한 실내 지도 자동 업데이트 방법: 딥러닝을 통한 POI 변화 탐지
[242]컴퓨터 비전을 이용한 실내 지도 자동 업데이트 방법: 딥러닝을 통한 POI 변화 탐지[242]컴퓨터 비전을 이용한 실내 지도 자동 업데이트 방법: 딥러닝을 통한 POI 변화 탐지
[242]컴퓨터 비전을 이용한 실내 지도 자동 업데이트 방법: 딥러닝을 통한 POI 변화 탐지
 
[212]C3, 데이터 처리에서 서빙까지 가능한 하둡 클러스터
[212]C3, 데이터 처리에서 서빙까지 가능한 하둡 클러스터[212]C3, 데이터 처리에서 서빙까지 가능한 하둡 클러스터
[212]C3, 데이터 처리에서 서빙까지 가능한 하둡 클러스터
 
[223]기계독해 QA: 검색인가, NLP인가?
[223]기계독해 QA: 검색인가, NLP인가?[223]기계독해 QA: 검색인가, NLP인가?
[223]기계독해 QA: 검색인가, NLP인가?
 

[SHAKE] 경인지역 6개연합 프로그래밍 경시대회 - 본선문제

  • 1. 1 - 2017 본선 문제집 - [A] 좋은 대회................................................................................2 [B] 월요병 .....................................................................................4 [C] 동방 보수 ...............................................................................6 [D] 새로운 수열............................................................................8 [E] 동혁이의 생일선물 .................................................................9 [F] 단신쓴짠................................................................................11 [G] 이상한 토너먼트 ..................................................................13
  • 2. 2 [A] 좋은 대회 문제 설명 대회를 열기 위해서는 굉장히 많은 요소들을 고려해야한다. 그리고 현정이는 어떤 의미로나 좋지 못한 대회를 만드는 것으로 유명하다. 문제 부분에 관해서도, 좋은 대회라고 생각되는 기준을 한 번도 만족해본 적이 없다. 현정이가 만들고 싶은 좋은 대회란 다음 세가지 조건을 모두 만족하는 대회를 말한다. 1. 모든 참가자가 한 문제 이상을 풀어야 한다. 2. 모든 문제는 한 명 이상의 참가자에게 풀려야 한다. 3. 모든 문제를 푼 참가자는 없어야 한다. 이런저런 경험을 겪으며 현정이는 이번에야말로 좋은 대회를 만들어내기 위해 모든 것을 바쳤다. 하지만 너무 많은 것을 바쳤는지 대회가 끝나기 전에 쓰러져버렸다. 눈을 뜬 현정이는 가장 먼저 대회 결과를 보고 이번 대회가 좋은 대회였는지를 알고싶어했다. 서둘러 대회 홈페이지에 접속한 현정이는 대회 결과를 나타내는 스코어보드를 찾아냈다. 하지만 현정이의 노트북은 모니터의 오른쪽 상단이 삼각형 모양으로 깨져있어 전체 스코어보드의 모습을 보지 못했다. 스코어보드는 더 많은 문제를 맞춘 참가자가 더 순위가 높고, 1 등이 가장 위에 위치해 순위대로 정렬되어있는 형태다. 현정이의 모니터는 ◥모양으로 깨져있기 때문에 볼 수 있는 스코어보드의 형태는 아래 규칙을 모두 만족한다. 1. 𝑖 등 참가자의 𝑥 번 문제 결과를 볼 수 있다면 (𝑖 + 1) ~ 𝑁등 참가자의 x 번 문제 결과 역시 볼 수 있다. 2. 𝑖 등 참가자의 𝑥 번 문제 결과를 볼 수 없다면, 1 ~ (𝑖 − 1) 등 참가자의 x 번 문제 결과 역시 볼 수 없다. 3. 𝑖 등 참가자의 𝑥 번 문제 결과를 볼 수 있다면, 1 ~ 𝑥 번 문제 결과 역시 볼 수 있다. 4. 𝑖 등 참가자의 𝑥 번 문제 결과를 볼 수 없다면, 𝑥 ~ 𝑀 번 문제 결과 역시 볼 수 없다. 현정이가 알 수 있는 것은 각 참가자들이 몇 문제를 풀었는지와 어떤 문제를 풀었는지에 대한 부분적인 정보이다. 현정이는 머릿속에서 행복회로를 가동하기 시작했다. 모니터가 깨져 볼 수 없는 부분을 자신이 원하는대로 채워 이 대회가 좋은대회였을 것이라고 믿는 것이다. 물론 각 참가자들이 맞춘 문제수와 볼 수 있는 결과들이 변경될 수는 없다. 깨어진 모니터에 보이는 스코어보드 정보가 주어졌을 때, 이 대회가 좋은 대회가 될 수 있는지를 알아보자.
  • 3. 3 입력 조건 첫 줄에 이번 대회의 참가자의 𝑁(1 ≤ 𝑁 ≤ 100)과 문제의 수 𝑀(1 ≤ 𝑀 ≤ 10)이 주어진다. 다음 𝑁 개의 줄에는 1 등부터 𝑁 등까지, 𝑖 등 참가자의 맞춘 문제 수 𝐾/(0 ≤ 𝐾/ ≤ 𝑀)와 해당 참가자의 1 ~ M 번 문제에 대한 결과가 𝑀 개가 주어진다. 결과는 맞았다면 1, 틀렸다면 0, 찢어져 결과를 알 수 없다면 -1 로 주어진다. 출력 조건 좋은대회가 될 수 있다면 “YES”, 아니라면 “NO”를 출력한다. 예제 입력 1 예상 출력 1 4 5 4 1 1 -1 -1 -1 3 1 0 -1 -1 -1 2 1 0 1 0 -1 1 1 0 0 0 -1 YES 예시 입력 예상 출력 5 7 4 1 1 1 -1 -1 -1 -1 3 1 1 1 0 -1 -1 -1 3 1 0 1 0 -1 -1 -1 2 1 0 0 0 1 -1 -1 1 0 0 1 0 0 -1 -1 NO Hint 아래는 1 번 예제가 좋은 대회가 될 수 있는 다양한 결과 중 하나이다. 1 1 0 1 1 1 0 1 0 1 1 0 1 0 0 1 0 0 0 0
  • 4. 4 [B] 월요병 문제 설명 일요일 밤, 내일 학교에 가는 것이 괴로워지기 시작했다. 학교에 가지 않을 핑계를 만들기 위해서, 집에서 학교로 가는 길에 벽을 잘 세워 집에서 학교로 가는 길을 모두 막기로 결정하였다. 학교와 집이 있는 동네는 𝑁 ∗ 𝑀의 칸으로 이루어져있다. 집은 (1, 1)에 위치하고, 학교는 (𝑁, 𝑀)에 위치한다. 각각의 칸은 3 가지 종류로 나뉜다. 1. 이미 벽이 존재하는 칸 (-2 로 나타낼 것이다.) 2. 벽이 존재하지 않으며, 벽을 세울 수 없는 칸 (-1 로 나타낼 것이다.) 3. 벽이 존재하지 않으며, 비용을 지불하면 벽을 세울 수 있는 칸 (비용이 적혀있을 것이다.) 우리는 3 번 종류의 칸에 적절히 벽을 세워서 집에서 학교로 가는 길을 막을 것이다. 단, 돈을 절약하기 위해서 비용을 최소로 하고 싶다. 다만 어떻게 벽을 지어도 막을 수 없는 경우가 있을 수 있는데, 이러한 경우도 판단해서 알려주어야 한다. 집에서 학교로 이동할 때는 상하좌우로만 이동할 수 있으며(대각선 방향으로는 이동할 수 없다), 주어진 격자판(𝑁 ∗ 𝑀) 밖으로 이동할 수 없다. 또한, 집과 학교가 위치한 칸은 벽을 세울 수 없는 칸임이 보장된다. 입력 조건 첫 번째 줄에는 지도의 행의 수 𝑁, 열의 수 𝑀이 공백을 사이로 주어진다. (2 ≤ 𝑁, 𝑀 ≤ 300) 다음 𝑁 줄에는 각각 𝑀 개 정수가 주어진다. -2 는 벽이 있음을 의미하고, -1 은 벽을 세울 수 없는 장소를 의미하며, 0 이상의 숫자들은 벽을 세울 수 있는 장소이며, 숫자는 벽을 세우는 비용을 의미한다. (비용 값은 10 억을 넘지 않는 정수이다.) 𝑖 번째 줄의 𝑗 번째 문자는 (𝑖, 𝑗)의 정보를 나타낸다. 집과 학교가 위치한 칸((1, 1)와 (𝑁, 𝑀))에는 -1 가 들어옴이 보장된다.
  • 5. 5 출력 조건 첫째 줄에 학교를 갈 수 없게 만드는 최소 비용을 출력한다. 단, 학교를 갈 수 없게 길을 막을 수 없다면, -1 을 출력한다 예제 입력 1 예제 출력 1 3 3 -1 1 -2 1 1 1 1 1 -1 2 예제 입력 2 예제 출력 2 5 5 -1 -1 5 -2 -2 -1 5 7 8 4 -2 5 -2 9 1 -2 8 11 2 -1 -2 9 1 -1 -1 4 예제 입력 3 예제 출력 3 5 5 -1 -1 -1 -2 -2 -1 5 -1 -1 -1 -2 -2 -2 9 -1 -2 8 11 2 -1 -2 9 1 -1 -1 -1 Hint 예제 1 설명 ..# .*. .*. 으로 막으면 가능하다,
  • 6. 6 [C] 동방 보수 문제 설명 아주대학교에는 𝑁개의 동아리방이 있었다. 빅-종빈빌런이 나타나기 전까지는. 어느날 나타난 빅-종빈빌런은 아주대학교의 모든 동아리방을 파괴하고, 동아리들을 내쫓았다. 빅- 종빈빌런이 떠난 자리에는 무너져내린 동방만이 남았다. 𝑀 개의 동방 없는 동아리들은 각자 𝑆/(1 ≤ 𝑖 ≤ 𝑀)만큼의 예산을 가지고 있다. 각 동아리는 최대 이 예산을 사용하여 동아리방을 재건하려고 한다. 각 동방을 다시 사용할 수 있기 위해서는 보수비용으로 𝐶/(1 ≤ 𝑖 ≤ 𝑁)원이 필요하다. 한 동방은 하나의 동아리에 배정될 수 있으며, 하나의 동아리는 하나의 동방만을 가질 수 있다. 각 동아리는 보수를 하고 돈이 남는다고 해서 다른 동아리에 돈을 보태주지는 않는다. 종빈이는 소속된 소학회가 동방이 없어 동방 없는 동아리가 얼마나 서러운지 잘 안다. 이에 최대한 많은 동아리가 동방을 가질 수 있게 도와주려 한다. 종빈이가 도울 것은 당연히 예산이 부족해 동아리방을 얻지 못하는 동아리들이다. 종빈이는 이러한 동아리들에게 동방 보수 비용을 보태주려고 한다. 종빈이가 도와줄 수 있는 금액의 합계가 최대 𝑋원이라고 할 때, 동방을 가질 수 있는 동아리는 최대 몇 개일지를 알아보자. 입력 조건 첫 줄에 𝑁(1 ≤ 𝑁 ≤ 100,000), 𝑀(1 ≤ 𝑀 ≤ 100,000), 𝑋 0 ≤ 𝑋 ≤ 1,000,000,000 가 주어진다. 두 번째 줄에 𝑁개의 동방 보수비용 𝐶/(0 ≤ 𝐶/ ≤ 1,000,000,000)가 차례로 주어진다. 세 번째 줄에 𝑀개의 동아리의 예산 𝑆/(0 ≤ 𝑆/ ≤ 1,000,000,000) 가 차례로 주어진다. 출력 조건 동방을 가질 수 있는 동아리의 최대 개수를 한 줄에 출력한다. 예제 입력 1 예상 출력 1 3 4 0 1 2 3 3 3 3 3 3
  • 7. 7 예시 입력 예상 출력 5 4 3 5 8 9 1 7 2 10 5 3 3 Hint 2 번 예제에서 각 동아리방을 고치는데 비용이 5, 8, 9, 1, 7 이고 각 동아리 들은 2, 10, 5, 3 의 금액을 가지고 있다. 이때 2 번 동아리에 3 번방, 4 번 동아리에 4 번방 배정하면 종빈이가 돈을 지원해 줄 필요가 없고 3 번동아리에 1 번방을 배정하면 종빈이가 2 원을 지원해주면서 종빈이의 도와줄 수 있는 금액 한도 내에서 3 개의 동아리가 동아리방을 배정받을 수 있게 된다. 어떻게 배정해도 4 개의 동아리가 모두 방을 배정받을 순 없다.
  • 8. 8 [D] 새로운 수열 문제 설명 다음과 같은 수열 A 가 주어졌을 때, A = { } 새로운 수열 B 는 다음과 같이 정의된다. B = 수열 A 가 주어지면, 수열 B 를 구해보자. 입력 조건 첫 줄에 𝑁(1 ≤ 𝑁 ≤ 300,000)이 주어진다. 두번째 줄에 𝑁개의 정수 𝑎/(|𝑎/| ≤ 10: )가 공백으로 구분되어 주어진다. 출력 조건 첫 번째 줄에 수열 𝐵를 구성하는 𝑁개의 정수 𝑏/를 공백으로 구분하여 출력한다. 예제 입력 1 예상 출력 1 3 4 1 -3 -7 19 -8 예시 입력 예상 출력 5 -1 2 -3 4 -5 -55 35 -12 -12 35 Hint 예제 1 에서 의 B 는 다음과 같이 구해진다. 𝑏> = 4 ­ 2 + (-9) = -7 𝑏? = 1 ­ (-6) + 12 = 19 𝑏@ = (-3) ­ 8 + 3 = -8
  • 9. 9 [E] 동혁이의 생일선물 문제 설명 동혁이에게는 𝑁명의 친구가 있다. 동혁이의 생일은 4 월 14 일인데, 친구들은 그 날 동혁이에게 수열을 선물하려 했다. 하지만 그 수열을 구성하는 숫자가 너무 많았기 때문에 수열 전체를 선물하는 대신에 수열을 만들 수 있는 숫자 𝑥만 선물하였고, 동혁이에게 수열을 만드는 방법을 전수해 줬다. 이제 7 월 1 일인 오늘, 친구들은 동혁이가 자신들의 선물을 얼마나 소중히 여겼는지 확인하기 위해 선물한 수열의 𝐾번째 수를 물어보려 한다. 동혁이가 제대로 대답을 하지 못한다면, 친구들은 실망하고 떠나갈 것이다. 하지만 동혁이는 돈도 안되는 수열엔 관심이 없었기 때문에 하나도 외우지 못했다. 동혁이가 지금 당장 친구들의 물음에 빠르게 답할 수 있도록 도와주자. 𝑖번째 친구가 선물한 숫자 𝑥/로 만들 수 있는 수열 𝑀/ (1 ≤ 𝑖 ≤ 𝑁)는 다음과 같은 규칙을 갖는다. 숫자 𝑥/의 거듭제곱을 원소로 하는 집합을 𝐴라 할 때( 𝐴 = 𝑥/ > , 𝑥/ ? , 𝑥/ @ , … ), 집합 𝐴의 공집합을 제외한 모든 부분집합을 𝐴D 𝑓 ≥ 0, 𝑓 ∈ ℤ 라 하자. 여기서 집합 𝐴I(𝑗 ∈ 𝑓)의 모든 원소들의 합을 𝑎I라 하면, 수열 𝑀/는 𝑎I(𝑗 ∈ 𝑓)로 구성된다. (단, 𝑴𝒊는 중복되는 값을 갖지 않는 증가수열이다.) 수열 𝑀/에 대해 좀 더 풀어서 설명하면 다음과 같다. 집합 𝐴 = 𝑥/ > , 𝑥/ ? , 𝑥/ @ , … 의 공집합을 제외한 모든 부분집합을 다음과 같이 나열할 수 있다. 𝐴>, 𝐴?, 𝐴@, … 그리고 각각의 부분집합의 합은 다음과 같다. 𝑎>, 𝑎?, 𝑎@, …
  • 10. 10 이제 𝑖번째 친구가 선물한 𝑥/로 만들 수 있는 수열 𝑀/는 𝑎>, 𝑎?, 𝑎@, … 를 오름차순으로 정렬한 수열이다. 입력 설명 첫째 줄에 친구의 수 𝑁(1 ≤ 𝑁 ≤ 100,000)이 주어진다. 그 후 𝑁줄에 걸쳐 친구들이 선물한 숫자 𝑥(2 ≤ 𝑥 ≤ 1,000) 와 친구들이 질문하고 싶어하는 𝐾(1 ≤ 𝐾 ≤ 1,000,000,000)가 주어진다. 출력 설명 숫자 𝑥/ (1 ≤ 𝑖 ≤ 𝑁)로 구성된 수열 𝑀/ (1 ≤ 𝑖 ≤ 𝑁)의 𝐾번째 수를 모두 구한 뒤, 전부 더한 값을 1,000,000,007 로 나눈 나머지를 출력한다. 예제 입력 1 예상 출력 1 1 3 5 10 예시 입력 예상 출력 2 5 10 3 7 143
  • 11. 11 [F] 단신쓴짠 문제 설명 사람의 신체는 안전하고 위험한 음식을 구별할 수 있는 방법이 필요하다. 인간의 혀는 대표적으로 네 가지 유형의 맛을 감지할 수 있는데 단맛, 신맛, 쓴맛, 짠맛이 그것이다. 우리가 흔히 말하는 맛있다, 맛없다의 맛에 관한 호불호는 이러한 단맛, 신맛, 쓴맛, 짠맛의 조합과 개인 기호에 기반한다. 하지만 준표는 맛을 느낄 수 없다. 신김치를 먹고 시지 않다고 말하는 준표를 보고 이를 알아챈 서현이는 준표가 위험한 맛들을 감지하지 못해 사고가 날까봐 걱정이 되었다. 서현이는 왜 준표가 맛을 느끼지 못하는지, 그리고 왜 자신의 미각이 정상이 아님을 인정하지 못하는지 조사하기 시작했고, 준표에게 1 ~ 𝑁 번으로 번호가 붙여진 𝑁 개의 미뢰가 존재하는 것을 알아냈다. 놀랍게도 준표의 미뢰들은 서로간의 연결관계를 통해 1 번 미뢰를 루트로 하는 하나의 이진 트리의 형태로 이루어져 있다. 하나의 트리는 하나의 미뢰집단이다. 일반적인 사람들은 𝑋 개 이상의 미뢰집단을 가지고 있다. 또한 맛이란 복합적인 것이기 때문에 각 미뢰집단은 적어도 𝐾 개 이상의 미뢰로 구성되어 있어야 제대로 된 역할을 할 수 있다. 서현이는 준표의 미뢰들 사이에 존재하는 연결관계를 끊어 준표가 일반사람들과 같이 𝐾 개 이상의 미뢰로 구성된 미뢰집단을 𝑋 개 이상 가지게 하고싶다. 하지만 연결관계를 끊을때마다 그 연결관계의 세기만큼 준표의 다른 신경계가 손상을 입을 수 있다. A 와 B 미뢰 사이의 연결이 서로에게 10 만큼의 영향을 주고 있다면, 이 연결관계를 끊었을때 준표도 10 만큼의 고통을 받게 되는 것이다. 미각이 돌아와도 다른 감각이 상처를 입으면 준표가 더더욱 힘든 삶을 살게 될 것이므로, 서현이는 끊어야하는 연결의 영향의 합, 즉 준표가 받을 고통의 합을 최소로 하고 싶다. 이때 준표가 다시 맛을 느끼기 위해서 받게될 최소 고통의 합은 얼마일지 알아보자. 입력 조건 첫 줄에 준표가 가진 미뢰의 개수 𝑁(1 ≤ 𝑁 ≤ 5,000), 한 미뢰집단이 정상적인 동작을 위해 가져야하는 최소 미뢰의 수 𝐾(1 ≤ 𝐾 ≤ 100), 보통사람처럼 맛을 느끼기 위해서 필요한 최소 정상 미뢰집단의 수 𝑋(1 ≤ 𝑋 ≤ 100) 가 주어진다. 이후 N-1 개 줄에 걸쳐 𝑖(2 ≤ 𝑖 ≤ 𝑁)번 미뢰의 정보 𝑃/(1 ≤ 𝑃/ ≤ 𝑁), 𝐶/(0 ≤ 𝐾/ ≤ 100,000) 가 주어진다. 이는 i 번 미뢰의 부모가 𝑃/ 번 미뢰이며, 이 둘 사이를 끊게 되면 𝐶/만큼의 고통이 발생함을 의미한다. 1 번 미뢰는 루트이므로 정보가 들어오지 않는다.
  • 12. 12 출력 설명 준표가 다시 맛을 느끼기 위해 겪어야하는 고통의 합의 최소값을 출력한다. 만약 준표가 어떻게 해도 미각을 되찾을 수 없는 상태라면 -1 을 출력한다. 예제 입력 1 예제 출력 1 3 1 3 1 4 1 3 7 예제 입력 2 예제 출력 2 7 3 2 1 5 2 6 2 7 3 4 4 2 4 1 7 Hint 2 번 예제에서 2 번 미뢰와 4 번 미뢰 사이의 연결을 끊는 것이 고통의 합이 최소가 된다.
  • 13. 13 [G] 이상한 토너먼트 문제 설명 천하제일코딩대회가 열리게 되었다. 천하제일코딩대회는 1 대 1 대결 토너먼트 방식으로 진행이 된다. 대회 운영을 맡은 전설의 코더 천민호는 개인의 코딩실력을 정확히 측정하는 스카우터를 만들어 각 참가자의 코딩력(능력치)을 알고 있다. 코딩력이 다른 두 사람이 대결을 하게되면 무조건 코딩력이 높은 사람이 승리하게 된다. (사실상 우승자는 정해져있는 것이나 다름없다.) 토너먼트 대진표를 작성하기 귀찮았던 민호는 우선 참가신청한 사람들의 순서대로 일렬로 나열한 후, 선을 그어 대진표를 완성하려 한다. 민호는 대회의 재미를 위해서 관중들이 지루하지 않도록 대진표를 완성하고 싶다. 일반적으로 관중들의 지루함 정도는 두 대결자의 코딩력의 차에 비례한다. 관중들의 지루함 = 두 대결자의 코딩력 차 라고 하였을 때, 모든 토너먼트가 끝난 후 지루함의 합이 최소가 되도록 대진표를 작성하려 한다. 이 때, 지루함의 합을 구하여라. *대진표의 선을 어떻게 작성하냐에 따라 각 참가자의 경기수는 다를 수 있다. *대진표의 선이 교차되게 작성하면 안 된다. (이웃한 두 그룹 간 대결할 수 있다.) 그림 1 최적의 경우 (총 지루함:1997) 그림 2 최악의 경우 (총 지루함:7848) 위 그림과 같은 경우 그림 1 의 방식으로 대진표를 작성하였을 때, 총 지루함은 1997 이지만 그림 2 의 방식으로 대진표를 작성하였을 때, 총 지루함은 7848 이 된다.
  • 14. 14 입력 조건 첫째줄에 총 참가자의 수 𝑁(2 ≤ 𝑁 ≤ 500)이 주어진다. 그 후 N 줄에 걸쳐 참가신청한 순서에 맞추어 코딩력 𝑋/(1 ≤ 𝑋/ ≤ 100,000)이 주어진다. 코딩력이 같은 참가자는 없다. 출력 설명 대진표를 최적의 경우로 작성하였을 때, 총 지루함의 값을 출력한다. 예제 입력 1 예제 출력 1 5 2017 100 20 30 70 1997 예제 입력 2 예제 출력 2 3 50 40 20 30