SlideShare a Scribd company logo
1 of 16
Download to read offline
본선 문제집
2
문제 안내
1. 문제 관련
A. 문제의 인쇄상태에 문제가 있는 경우 스태프에게 문의해주세요
B. 문제의 설명을 정확히 읽어주세요
C. 문제속의 인물과 이야기는 허구입니다
2. 질문 관련
A. 문제 자체에 직접적으로 관련된 내용만 질문하실 수 있습니다
B. 시스템과 관련된 질문은 스태프를 통해주세요
C. 문제 설명에 이미 명시된 내용에 대해서는 답변을 해드리지 않습니다
D. 일부 중요한 질문은 전체 공개로 전환될 수 있습니다.
3. 입력 관련
A. 입력은 stdin(C/C++), System.in(Java)를 통해서 받습니다
B. 모든 입력은 주어진 양식과 조건에 맞추어 주어집니다
C. 양식과 조건을 벗어난 예외적인 데이터는 입력되지 않습니다
4. 출력 관련
A. 출력은 stdout(C/C++), System.out(Java)를 통해서 합니다
B. 출력 양식을 필히 확인하시고 정확히 출력해주세요
C. 지시하지 않은 내용을 출력하면 오답으로 처리될 수 있습니다
5. 제한 관련
A. Java 는 언어적 특성상 메모리와 시간을 조금 더 제공합니다
3
A. 끝말잇기
문제 설명
끝말잇기는 이 전 단어의 마지막 글자로 시작하는 새로운 단어를 말하며 이어가는 게임이다. 각 사람은
자신 바로 이전의 사람이 말한 단어의 끝 글자로 시작하는 단어를 말해야 한다. 물론 존재하지 않는 터무니
없는 단어는 사용할 수 없으므로 이 게임은 전적으로 어휘력이 풍부한 사람이 유리하다.
연애에 서툰 복학생인 우태는 신입생과 친해지기 위하여 MT 에 가기에 앞서 끝말잇기 게임을 준비했다.
단, 몇몇 신입생에게 점수를 따고 싶은 우태는 자신이 원하는 대로 게임이 흘러갈 수 있도록 몇 가지 아래와
같은 규칙을 정했다.
• 이 게임에서 사용되는 모든 단어는 영어이다.
• 사전의 모든 단어는 항상 사전순으로 정렬되어있다.
• 게임에 참가하는 모든 사람은 우태가 만든 끝말잇기 사전에 적힌 단어들 만을 사용할 수 있다.
• 우태가 만든 사전에 없는 영단어는 사용할 수 없으며, 사전에 있는 단어는 실존하지 않는 단어여도
상관없다.
• 한 사람이 단어를 말하면, 다음 사람이 말하는 단어의 첫 글자는 이 전 사람이 말한 단어의 마지막
글자와 같아야 한다.
MT 에 가기 전에 자신이 원하는 대로 끝말잇기 사전을 만들고, 미리 모든 단어를 외워둔 우태는 기대에
가득 차 있었다. 하지만 MT 에 가지 않기로 결정한 모태솔로 재현이는 연서복 우태가 자신처럼 신입생과
친분이 없기를 바랬다. 그래서 재현이는 우태가 동방에 둔 사전을 몰래 훔쳐서 사전에 적힌 단어를
조작해버렸다!
재현이는 우태의 사전을 훔쳐서 각 단어를 구성하는 알파벳을 사전순으로 정렬해버렸다! 즉, 예를 들어
우태의 사전에 lovelyz 라는 단어가 있었다면 재현이가 조작한 사전에는 ellovyz 로 바뀌어 있게 된다.
원본 사전 조작된 사전
apple
banana
eat
kiwi
trick
aaabnn
aelpp
aet
cikrt
iikw
<재현이가 사전을 조작하는 예시>
위의 예시에서 원본 사전의 단어로는 banana-apple-eat-trick-kiwi 순서로 모든 단어를 한번씩만
사용하여 게임을 끝낼 수 있다. 이런 경우를 우태는 성공적 게임이라고 한다.
MT 에 도착해서 사전이 조작되었다는 사실을 알게 된 우태는 이미 게임의 규칙을 후배들에게
설명해버려서 조작된 사전을 가지고 게임을 진행하는 수 밖에 없었다. 그래도 희망을 버리지 않은 우태는
4
당신에게 조작된 사전을 가지고도 성공적 게임이 가능한 지 확인해 달라는 부탁을 했다. 불쌍한 연서복
우태를 도와주자.
입력형식
첫 줄에 사전에 적힌 단어의 개수를 나타내는 자연수 N 이 주어진다. N 은 2 와 10 사이의 정수이다.
그 후 N 줄에 걸쳐서 각 줄에 하나씩 조작 된 사전에 존재하는 단어들이 사전순으로 정렬된 순서로
주어진다. 각 단어의 길이는 1 글자에서 10 글자 사이다.
모든 입력은 소문자로 주어진다.
출력형식
조작된 사전에 존재하는 단어들을 모두 한 번씩만 사용하여 정확히 N 번만에 게임이 끝나는 경우가
가능하다면 “YES”를 출력한다. 그렇지 않다면 “NO”를 출력한다.
예제 데이터 1
입력 출력
5
aaabnn
alpp
aet
cikrt
iikw
NO
예제 데이터 2
입력 출력
9
abblosuy
aeij
eik
einy
ellovyz
gjnsuu
ijmu
ijn
ijsu
NO
예제 데이터 3
입력 출력
3
aaabcddef
fghhhhh
hijjjjjklm
YES
5
B. 진격의 거인
문제 설명
사과를 좋아하는 재현이는 위에서 봤을 때 원형인 평평한 도시에 살고 있다. 재현이네 도시
사람들은 집의 위치를 두 가지 방식으로 나타내는데, 첫 번째 방식은 도시의 중심을 원점으로 하여
(𝑥, 𝑦)의 좌표 형식으로 나타내는 것이고, 두 번째 방식은 도시의 중심(원점)으로부터의 거리 𝑟과
동쪽으로 향하는 축(x 축 양의 방향)을 기준으로부터 반시계 방향으로 보았을 때 이루는 각도 θ에
대하여 (𝑟, 𝜃)로 나타내는 것이다.
얼마 전, 평화롭던 재현이네 마을에 거인들이 몰려와 마을의 동쪽과의 각도가 θ)인 선을
기준으로 시계 반대방향으로 각도 θ*만큼의 부채꼴 영역을 쑥대밭으로 만들어 버렸다. 그 곳에
있던 집들이 무너졌음은 물론, 그 영역을 지나갈 수 조차 없게 되었다.
<재현이의 도시에서 파괴된 (회색)영역>
재현이는 거인들의 마을의 일부를 파괴한 영향으로 집들 사이를 오가는데에 불편함이 있을
것이라 예상하였다. 재현이는 피해의 규모를 예측하기 위하여 당신에게 도움을 청했다. 마을에
존재하는 각 집들의 위치와 거인에 의해 파괴된 영역을 이루는 각도가 주어질 때, 남아있는 두 집
사이의 최단거리 들 중 최댓값을 구하시오.
입력형식
첫 줄에 재현이네 도시에 존재하는 집의 수 N 이 주어진다. N 은 1 과 4,000 사이의 정수이다.
이후 N 줄에 걸쳐서 한 줄에 하나씩 재현이네 도시에 존재하는 집들의 위치가 좌표 형식으로
주어진다. 재현이네 도시에 존재하는 모든 집들의 좌표는 모두 절대값이 10,000 이하인
정수이다.
마지막 줄에는 θ)와 θ*가 공백을 사이에두고 입력된다. 두 각도는 0 과 360 사이의 정수이다.
출력형식
파괴되지 않은 두 집 사이의 최단거리 중 최댓값을 출력한다. 출력된 값과 답안의 값이 10-.
이하의
상대오차 혹은 절대오차를 가지는 경우 정답으로 인정한다.
6
예제 데이터 1
입력 출력
8
-4 -10-4 8
1 -9
6 -3
6 -9
-7 -5
-4 4
-7 -1
283 60
18.000
7
C. Candy
문제 설명
영희는 지난 주에 철수의 생일 선물로 서로 다른 맛의 사탕 N 개를 준비했다. 사탕은 맛에 따라
1 번부터 𝑁번 까지의 사탕으로 분류된다. 영희는 철수에게 주기 위하여 사탕들을 모두 상자에
담아 정성스럽게 포장하였다.
철수의 생일 날, 영희는 준비해두었던 사탕 꾸러미를 철수에게 줬다. 그런데 철수는 꾸러미에서
이상한 점을 발견했다. 몇 개의 사탕이 이미 포장이 뜯어져 있었다! 철수는 영희에게 물어 원래
들어있던 사탕의 개수는 𝑁개 라는 사실을 알게되었다. 사탕은 하나도 사라지지 않았을 수 도있고,
전부다 사라졌을 수도 있다.
철수는 𝐾(1 ≤ 𝐾 ≤ 𝑁)개의 사탕을 선물 받으면 총 23
만큼의 만족도를 얻는다. 예를 들어서
철수가 1, 3, 4 번 사탕을 선물 받았다면, 8 의 만족도를 느끼게 된다. 단, 철수가 사탕을 하나도 못
받는 경우에는 철수는 0 의 만족도를 느끼게 된다.
이 때, 철수가 사탕 꾸러미를 통해 사탕들을 얻을 수 있는 모든 경우의 수에 대하여 각 경우에
얻을 수 있는 만족도의 합은 얼마일까? 철수의 궁금증을 풀어주기 위하여 이를 계산해주자.
입력 형식
입력의 첫 줄에 서로 다른 사탕의 개수를 나타내는 정수 𝑁이 주어진다. N 은 2 와 104
사이의
정수이다.
출력 형식
첫 줄에 철수가 사탕을 받을 수 있는 모든 경우의 수에 대해 만족도들의 합을 1,000,000,007 로
나눈 나머지를 출력한다.
예제 데이터 1
입력 출력
2 8
- 1 번 사탕만 받은 경우 : 2
- 2 번 사탕만 받은 경우 : 2
- 1 번과 2 번 사탕을 받은 경우 : 4
- 아무 사탕도 받지 못한 경우 : 0
8
D. InterGrid
문제 설명
인류가 살고 있는 우주와는 평행한 또 하나의 우주는 2 차원으로 이루어져 있다. 먼 미래에
인류는 3 차원에 살고있는 스스로와 인류가 만든 물질의 차원을 축소할 수 있는 방법을
찾아내기에 이르렀고, 아울러 평행하는 우주와 우주 사이를 이동할 수 있게 되었다.
2 차원 평행 우주를 여행하는 임무를 맡은 shake 호는 해당 우주의 지도를 받았다. 그 지도에서
모든 위치는 제 1 사분면에 해당하는 영역의 좌표로 표시한다. 즉, 가장 왼쪽 아래의 지점은 (0,
0)으로 표현하며 오른쪽이나 위로 갈수록 각 축의 좌표가 증가하게 된다.
<2 차원 우주의 지도 예시>
shake 호가 2 차원 우주에서 각 지점을 이동할 때에는 두 지점 사이의 멘하탄 거리만큼의
에너지를 사용하게 된다.
두 점 A(𝑥6, 𝑦6)와 𝐵(𝑥8, 𝑦8)사이의 멘하탄 거리 𝐷 =	 𝑥6 − 𝑥8 +	 𝑦6 − 𝑦8 이다.
하지만 이 2 차원 우주에는 몇 개의 단방향 웜홀이 존재하는데, 웜 홀을 이용하면 웜 홀의
출발점에서 도착점까지 0 의 에너지를 사용하여 도달할 수 있다. 물론 웜 홀의 출발점에
도달하더라도 무조건 웜 홀을 사용하지는 않아도 된다.
shake 호의 현재 위치 A(𝑥6, 𝑦6)와 도달하고자 하는 목적지의 좌표 𝐵(𝑥8, 𝑦8)가 주어질 때, 해당
위치로 이동할 때 사용해야할 최소의 에너지 사용량을 계산해보자.
9
입력 형식
첫 줄에는 𝑥6, 𝑦6, 𝑥8, 𝑦8와 2 차원 우주에 존재하는 웜 홀의 개수를 나타내는 정수 N이 주어진다.
N은 0 과 5,000 사이의 정수이다.
그 후 N 줄에 걸쳐서 한 줄에 하나씩 웜홀의 출발점 S 와 도착점 F 의 좌표 𝑥?, 𝑦?, 𝑥@, 𝑦@가
주어진다.
2 차원 우주의 모든 좌표는 0 과 1,000,000 사이의 정수이다.
출력 형식
첫 줄에 shake 호가 A 지점에서 B 지점으로 이동하기 위해 사용해야 할 최소한의 에너지를 정수
형식으로 출력한다.
예제 데이터 1
입력 출력
3 17 7 6 6
9 13 6 17
5 15 6 10
2 19 8 19
2 4 1 18
10 4 3 2
8 16 1 7
9
예제 데이터 2
입력 출력
0 0 1 1 0 2
10
E. Three-Tree
문제 설명
정점의 개수가 N 인 트리가 있다. 트리의 각 정점의 번호는 1 부터 N 사이의 서로 다른 정수이다.
한 트리에 존재하는 길이가 3 인 단순 경로의 수를 S 라 하자.
<길이가 3 인 단순 경로가 두 개 존재하는 트리 예시>
예를 들어서, 위의 그림처럼 트리가 있을 경우 길이가 3 인 단순 경로는 [1, 2, 3, 4], [5,2,3,4]로
두 개가 존재한다. 트리에서 단순 경로의 수를 세는 것은 쉬운 문제이다.
그렇다면 트리에 존재하는 단순 경로의 수 S 가 주어질 때에, 실제로 S 개의 길이 3 짜리 단순
경로를 가지는 트리를 복원해보자. 가능한 트리의 종류가 여러가지 인 경우 그 중 아무것이나
출력한다. 단, 트리를 이루는 정점의 개수는 500 개 이하여야 한다.
입력 형식
첫 줄에 문제에서 요구하는 길이가 3 인 단순 경로의 수 S 가 주어진다. S 는 1 과 10,000 사이의
정수이다.
출력 형식
출력의 첫 줄에는 정점의 개수 N 을 출력한다. N 은 500 이하의 자연수여야 한다.
그 후 (N-1)개의 줄에 걸쳐서, 한 줄에 하나의 간선을 이루는 두 정점의 번호를 출력한다.
예제 데이터 1
입력 출력
2 5
1 2
2 3
3 4
2 5
11
F. DNA 비밀번호
문제 설명
평소에 문자열을 가지고 노는 것을 좋아하는 민호는 어느날 DNA 문자열에 대하여 알게 되었다.
DNA 문자열은 ‘A’, ‘C’, ‘G’, ‘T’로만 구성되어있는 문자열을 말한다. 예를 들어서 “ACKA”는
DNA 문자열이 아니지만, “ACCA”는 DNA 문자열이다.
이런 신비한 문자열에 완전히 매료된 민호는 길이가 S 인 임의의 DNA 문자열을 만들고,
만들어진 문자열에서 연속된 P 글자를 추출해 비밀번호로 사용하기로 마음먹었다.
하지만 민호는 이렇게 만든 비밀번호에는 큰 문제가 있다는 것을 발견했다. 임의의 DNA
문자열에서 연속 부분 문자열을 추출할 경우, “AAAA”와 같이 보안에 취약한 비밀번호가 만들어
질 수 있기 때문이다.
그래서 민호는 각 알파벳 별로 암호에 최소한으로 포함되어야 할 개수를 정하기로 했다. 원본
DNA 문자열이 “AAACCTGCCAA”이고, 민호가 만들어 낼 비밀번호는 4 글자라고 하자. 민호가
‘A’는 1 개 이상, ‘C’는 1 개 이상, ‘G’는 1 개 이상, ‘T’는 0 개 이상 사용되어야 한다는 규칙을
정했다고 가정하다. 이 때 “ACCT”는 비밀번호가 될 수 없지만, “GCCA”는 비밀번호가 될 수 있다.
민호가 만든 임의의 DNA 문자열과 비밀번호이 될 수 있는 조건이 주어졌을 때, 민호가
비밀번호를 만들 수 있는 경우의수를 계산해보자. 단, 서로 같은 문자열이더라도 추출한 위치가
다르면 다른 암호로 계산한다.
입력 설명
첫 줄에는 민호가 만든 DNA 문자열의 길이 S 와 비밀번호로 사용할 부분 문자열의 길이 P 가
주어진다. S 와 P 는 1 과 1,000,000 사이의 정수이며 P 는 S 이하이다.
두번째 줄에는 민호가 만든 DNA 문자열이 주어진다. 모든 알파벳은 대문자이다.
세번째 줄에는 비밀번호에 포함되어야 할 각 알파벳의 최소 개수가 주어진다. 각각 ‘A’, ‘C’, ‘G’,
‘T’의 최소 개수를 의미한다. 각 수는 0 과 1,000,000 사이의 정수이다.
출력 설명
첫 줄에 민호가 조건에 맞는 비밀번호를 만들어 낼 수 있는 경우의 수를 출력한다.
12
예제 데이터 1
입력 출력
41 30
AGGAACAGCGACTAACCCACTGAGGGTTACCTCTGCTGCTT
0 5 2 1
12
13
G. I.O.I
문제 설명
모두에게 비밀로 하고 있지만, 사실 재현이는 인기 아이돌 그룹의 멤버 ‘사과’로 활동하고 있다.
재현이는 그룹 내에서 귀여움을 담당하고 있는데, 이를 인정받아 국제적인 아이돌 축제인
I.O.I(International Olympiad of Idols)에 한국 대표로 선발되어 참가하게 되었다.
I.O.I 는 기본적으로 축제이지만, 이름에 걸맞게 국가대항전 형식의 대회가 진행된다. 참가하는 각
국가별로 아이돌 N 명을 뽑아 대표팀으로 선발하고, 토너먼트 방식으로 대결하여 최종 우승팀을
결정한다.
재현이의 귀여움을 앞세워 한국 팀은 무난하게 결승에 진출할 수 있었다. 결승전은 크게 단체전과
개인전으로 이루어 지는데, 그 중 개인전은 양 팀에서 한 경기에 각 팀에서 한 명씩 나와 각자
개인의 기량을 뽐내며 대결하는 방식으로, 총 N 번이 진행된다. 개인전에 무승부는 존재하지
않는다.
각 팀의 대진표는 아래와 같은 방식으로 결정한다.
1. 가위 바위 보를 진행하여 이긴 팀이 먼저 선택권을 가진다.
2. 선택권을 가진 팀은 각 팀에서 아직 대진 상대가 정해지지 않은 한 명씩을 골라 그 둘을
대결 상대로 정한다. 그 이후 상대팀에게 선택권이 돌아간다.
3. 2 의 과정을 반복하다가 모든 사람의 대진 상대가 결정되면, 그 뒤에 개인전을 시작한다.
대회가 진행되면서 결승에 진출한 두 팀은 상대에 대한 정보를 완벽히 파악했고, 각자 자기 팀의
선수들이 상대팀의 어떤 선수과 대결을 했을 때 승률이 어느 정도 될지 계산해두었다. 이 분석
결과는 객관적이기 때문에 두 팀의 분석 결과는 완전히 동일하다. 즉 A 팀이 A 팀의 p 선수와
B 팀의 q 선수가 대결할 경우 승률을 40%라고 분석했을 경우, B 팀은 B 팀의 q 선수와 A 팀의
p 선수가 대결할 경우 승률을 60%라고 분석한다는 것이다.
재현이는 두 팀 모두 최선의 전략으로 대결 상대를 정하려고 한다고 할 때, 한국 팀이 첫
가위바위보를 이겼을 때와 졌을 때 두 경우에 대하여 각각 개인전에서 한국이 승리하는 횟수의
기대값을 구하고자 한다.
입력 형식
첫 줄에 각 팀에 소속된 선수의 수 N 이 주어진다. N 은 1 과 8 사이의 정수이다.
그 후 총 N 줄에 걸쳐 각 줄에 N 개의 숫자가 주어진다. i 번째 줄의 j 번째 숫자 𝑝B,C는 한국 팀의
i 번째 선수와 상대 팀의 j 번째 선수가 대결했을 때 한국팀이 승리할 확률을 나타낸다.
출력 형식
한국 팀이 가위바위보를 이겼을 때와 졌을 때의 승리하게 되는 대결의 수의 기대값을 공백으로
구분하여 출력한다. 출력한 답안과 실제 정답과의 오차가 10-.
이하인 경우 답안으로 인정한다.
14
예제 데이터 1
입력 출력
2
0.1 0.7
0.5 0.3
1.20000 0.40000
15
H. 사서왕 준서
문제 설명
준서는 세계 최고의 사서왕이 되는 것이 꿈이다. 사서왕이 되기 위해 모험을 떠난 준서는 세계
곳곳의 도서관을 돌아다니며 구직을 하고 있지만, 대 취업난 시대에 사서가 되는 길은 요원하기만
했다.
낙담하며 국가의 부름에 응하기 위해 준비하던 준서에게 일생일대의 기회가 찾아왔다. 세계
최고의 도서관을 소유하고 있는 ANSI(Ajou Nerd Standards Insititution)의 사서 공채에 합격한
것이다!
합격 메일을 받은 준서는 뛸 듯이 기뻤지만 그것도 잠시, ANSI 의 사서가 되기 위해서는 사서의
기본 소양을 검증받기 위한 교육 과정을 거쳐야만 한다. 보통의 도서관이었다면 사서왕이
되겠다는 일념으로 해냈을 준서지만, ANSI 의 근무환경은 너무나도 열악했다.
그 중에서도 가장 힘든 것은 도서정리이다. 도서관을 찾은 사람들이 책을 찾기 쉽도록 책장의
책을 번호에 대하여 비내림차순으로 배치해야 한다. 하지만 ANSI 회원들 중에서도 Nerd of
Nerd, King of Nerd 라고 불리는 용재 D. 애쉬가 하루종일 눌러 앉아서 책들을 마구 열람하고
아무데나 꽂아버리는 것이다! 너드들의 도서관답게 책들의 무게도 보통이 아니어서, 근육통까지
얻은 준서는 매일밤 베갯잇을 눈물로 적시며 보냈다.
가엾은 준서가 군인이 아닌 사서로서 일을 할 수 있도록, 책을 정리하는데에 필요한 최소의
노동력은 얼마인지 계산해주자. 노동력이란 책을 옮기는데에 사용한 힘들의 총 합으로, 책 한권을
옮기기 위해서는 이동거리와 상관 없이 해당 책의 무게만큼의 힘이 필요하다. 새로운 책을 꽂을
책장의 공간은 항상 넉넉하며, 도서 정리는 책 사이의 공간은 무시한 채 책의 순서만 맞으면 된다.
입력 설명
첫 줄에 준서가 정리해야하는 책의 수 N 이 들어온다. N 은 1 과 5,000 사이의 정수이다.
두 번째 줄에는 준서가 정리해야하는 책의 번호가 N 개 주어진다. 각 번호의 위치는 현재 책이
꽂혀진 순서와 동일하다. 또한 모든 책의 번호는 0 과 1,000 사이의 실수이다.
세 번째 줄에는 각 책의 무게가 꽂힌 순서대로 N 개 주어진다. 각 책의 무게는 1 과
10,000 사이의 정수이다.
출력 설명
한 줄에 책을 정리하는 데 필요한 최소의 노동력을 정수 형식으로 출력한다.
16
예제 데이터 1
입력 출력
3
802.11 813.1 107
4 5 6
6
- 3 번째 책을 맨 앞으로 옮길 때 드는 힘 6 이 최소이다.
예제 데이터 2
입력 출력
9
813.8 812 816 813 811 813 813.6 801.9
880.1
6 20 5 8 17 20 12 41 6
69
- 1, 3, 5, 8 번 책을 맞는 자리로 옮기는 힘의 합 6 + 5 + 17 + 41 = 69 가 최소가 된다

More Related Content

What's hot

[KAIST - RUN] 프로그래밍 경진대회 문제
[KAIST - RUN] 프로그래밍 경진대회 문제[KAIST - RUN] 프로그래밍 경진대회 문제
[KAIST - RUN] 프로그래밍 경진대회 문제NAVER D2
 
[한양대 aloha] 프로그래밍 경진대회 문제_advanced part
[한양대 aloha] 프로그래밍 경진대회 문제_advanced part[한양대 aloha] 프로그래밍 경진대회 문제_advanced part
[한양대 aloha] 프로그래밍 경진대회 문제_advanced partNAVER 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
 
[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
 
[KAIST - RUN] 프로그래밍 경진대회 문제 풀이
[KAIST - RUN] 프로그래밍 경진대회 문제 풀이[KAIST - RUN] 프로그래밍 경진대회 문제 풀이
[KAIST - RUN] 프로그래밍 경진대회 문제 풀이NAVER D2
 
[D2 CAMPUS] 부산대 Alcall 프로그래밍 경시대회 문제
[D2 CAMPUS] 부산대 Alcall 프로그래밍 경시대회 문제[D2 CAMPUS] 부산대 Alcall 프로그래밍 경시대회 문제
[D2 CAMPUS] 부산대 Alcall 프로그래밍 경시대회 문제NAVER D2
 
[연세대 모르고리즘] 프로그래밍 경진대회 문제 풀이
[연세대 모르고리즘] 프로그래밍 경진대회 문제 풀이[연세대 모르고리즘] 프로그래밍 경진대회 문제 풀이
[연세대 모르고리즘] 프로그래밍 경진대회 문제 풀이NAVER D2
 
서울대학교 2017 SNUPC 문제
서울대학교 2017 SNUPC 문제서울대학교 2017 SNUPC 문제
서울대학교 2017 SNUPC 문제NAVER D2
 
[D2 CAMPUS] 숭실대 SCCC 프로그래밍 경시대회 문제 풀이
[D2 CAMPUS] 숭실대 SCCC 프로그래밍 경시대회 문제 풀이[D2 CAMPUS] 숭실대 SCCC 프로그래밍 경시대회 문제 풀이
[D2 CAMPUS] 숭실대 SCCC 프로그래밍 경시대회 문제 풀이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 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
 
2019 홍익대학교 프로그래밍 경진대회 풀이 슬라이드 (Open Contest용)
2019 홍익대학교 프로그래밍 경진대회 풀이 슬라이드 (Open Contest용)2019 홍익대학교 프로그래밍 경진대회 풀이 슬라이드 (Open Contest용)
2019 홍익대학교 프로그래밍 경진대회 풀이 슬라이드 (Open Contest용)GreenJung1
 

What's hot (20)

[KAIST - RUN] 프로그래밍 경진대회 문제
[KAIST - RUN] 프로그래밍 경진대회 문제[KAIST - RUN] 프로그래밍 경진대회 문제
[KAIST - RUN] 프로그래밍 경진대회 문제
 
[한양대 aloha] 프로그래밍 경진대회 문제_advanced part
[한양대 aloha] 프로그래밍 경진대회 문제_advanced part[한양대 aloha] 프로그래밍 경진대회 문제_advanced part
[한양대 aloha] 프로그래밍 경진대회 문제_advanced part
 
서울대학교 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 문제
 
[KAIST - RUN] 프로그래밍 경진대회 문제 풀이
[KAIST - RUN] 프로그래밍 경진대회 문제 풀이[KAIST - RUN] 프로그래밍 경진대회 문제 풀이
[KAIST - RUN] 프로그래밍 경진대회 문제 풀이
 
[D2 CAMPUS] 부산대 Alcall 프로그래밍 경시대회 문제
[D2 CAMPUS] 부산대 Alcall 프로그래밍 경시대회 문제[D2 CAMPUS] 부산대 Alcall 프로그래밍 경시대회 문제
[D2 CAMPUS] 부산대 Alcall 프로그래밍 경시대회 문제
 
[연세대 모르고리즘] 프로그래밍 경진대회 문제 풀이
[연세대 모르고리즘] 프로그래밍 경진대회 문제 풀이[연세대 모르고리즘] 프로그래밍 경진대회 문제 풀이
[연세대 모르고리즘] 프로그래밍 경진대회 문제 풀이
 
서울대학교 2017 SNUPC 문제
서울대학교 2017 SNUPC 문제서울대학교 2017 SNUPC 문제
서울대학교 2017 SNUPC 문제
 
[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 풀이
 
한양대 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 프로그래밍 경시대회 문제 풀이
 
2019 홍익대학교 프로그래밍 경진대회 풀이 슬라이드 (Open Contest용)
2019 홍익대학교 프로그래밍 경진대회 풀이 슬라이드 (Open Contest용)2019 홍익대학교 프로그래밍 경진대회 풀이 슬라이드 (Open Contest용)
2019 홍익대학교 프로그래밍 경진대회 풀이 슬라이드 (Open Contest용)
 

Viewers also liked

SHAKE - 경기 남부 4개대학 연합 프로그래밍 경시대회 본선 문제풀이
SHAKE - 경기 남부 4개대학 연합 프로그래밍 경시대회 본선 문제풀이SHAKE - 경기 남부 4개대학 연합 프로그래밍 경시대회 본선 문제풀이
SHAKE - 경기 남부 4개대학 연합 프로그래밍 경시대회 본선 문제풀이NAVER D2
 
2016 hack festival igrus
2016 hack festival igrus2016 hack festival igrus
2016 hack festival igrusJinookawk
 
[D2CAMPUS] Dotuator - 능동형 촉감 전달 점자 디스플레이 (BARAM)
[D2CAMPUS] Dotuator - 능동형 촉감 전달 점자 디스플레이 (BARAM)[D2CAMPUS] Dotuator - 능동형 촉감 전달 점자 디스플레이 (BARAM)
[D2CAMPUS] Dotuator - 능동형 촉감 전달 점자 디스플레이 (BARAM)NAVER D2
 
[D2 CAMPUS] 안드로이드 오픈소스 스터디자료 - java OOM, Reference API
[D2 CAMPUS] 안드로이드 오픈소스 스터디자료 - java OOM, Reference API[D2 CAMPUS] 안드로이드 오픈소스 스터디자료 - java OOM, Reference API
[D2 CAMPUS] 안드로이드 오픈소스 스터디자료 - java OOM, Reference APINAVER D2
 
HungryOsori 2016년 1학기 최종 발표
HungryOsori 2016년 1학기 최종 발표HungryOsori 2016년 1학기 최종 발표
HungryOsori 2016년 1학기 최종 발표Osori Hanyang
 
[D2 CAMPUS] 안드로이드 오픈소스 스터디자료 - OkHttp
[D2 CAMPUS] 안드로이드 오픈소스 스터디자료 - OkHttp[D2 CAMPUS] 안드로이드 오픈소스 스터디자료 - OkHttp
[D2 CAMPUS] 안드로이드 오픈소스 스터디자료 - OkHttpNAVER D2
 
[D2 CAMPUS] 안드로이드 오픈소스 스터디자료 - Http Request
[D2 CAMPUS] 안드로이드 오픈소스 스터디자료 - Http Request[D2 CAMPUS] 안드로이드 오픈소스 스터디자료 - Http Request
[D2 CAMPUS] 안드로이드 오픈소스 스터디자료 - Http RequestNAVER D2
 
오픈소스 맛보기 - 정민우님
오픈소스 맛보기 - 정민우님오픈소스 맛보기 - 정민우님
오픈소스 맛보기 - 정민우님NAVER D2
 
Swift and Xcode8
Swift and Xcode8Swift and Xcode8
Swift and Xcode8Hyuk Hur
 
Swift internals
Swift internalsSwift internals
Swift internalsJung Kim
 
Protocol Oriented Programming in Swift
Protocol Oriented Programming in SwiftProtocol Oriented Programming in Swift
Protocol Oriented Programming in SwiftSeongGyu Jo
 
LetSwift RxSwift 시작하기
LetSwift RxSwift 시작하기LetSwift RxSwift 시작하기
LetSwift RxSwift 시작하기Wanbok Choi
 
Letswift Swift 3.0
Letswift Swift 3.0Letswift Swift 3.0
Letswift Swift 3.0Sehyun Park
 
Swift package manager
Swift package managerSwift package manager
Swift package manager성관 윤
 
개알못의 오픈소스이야기 - 이상준님
개알못의 오픈소스이야기 - 이상준님개알못의 오픈소스이야기 - 이상준님
개알못의 오픈소스이야기 - 이상준님NAVER D2
 
스위프트 성능 이해하기
스위프트 성능 이해하기스위프트 성능 이해하기
스위프트 성능 이해하기Yongha Yoo
 
안드로이드 개발자를 위한 스위프트
안드로이드 개발자를 위한 스위프트안드로이드 개발자를 위한 스위프트
안드로이드 개발자를 위한 스위프트병한 유
 
[Kerference] 시작! 리버싱 - 김종범(KERT)
[Kerference] 시작! 리버싱 - 김종범(KERT)[Kerference] 시작! 리버싱 - 김종범(KERT)
[Kerference] 시작! 리버싱 - 김종범(KERT)NAVER D2
 
[Kerference] Nefarious SQL - 김동호(KERT)
[Kerference] Nefarious SQL - 김동호(KERT)[Kerference] Nefarious SQL - 김동호(KERT)
[Kerference] Nefarious SQL - 김동호(KERT)NAVER D2
 
[Kerference] 쉽고 빠르게 시작하는 Volatility plugin 개발 - 김동현(BoB)
[Kerference] 쉽고 빠르게 시작하는 Volatility plugin 개발 - 김동현(BoB)[Kerference] 쉽고 빠르게 시작하는 Volatility plugin 개발 - 김동현(BoB)
[Kerference] 쉽고 빠르게 시작하는 Volatility plugin 개발 - 김동현(BoB)NAVER D2
 

Viewers also liked (20)

SHAKE - 경기 남부 4개대학 연합 프로그래밍 경시대회 본선 문제풀이
SHAKE - 경기 남부 4개대학 연합 프로그래밍 경시대회 본선 문제풀이SHAKE - 경기 남부 4개대학 연합 프로그래밍 경시대회 본선 문제풀이
SHAKE - 경기 남부 4개대학 연합 프로그래밍 경시대회 본선 문제풀이
 
2016 hack festival igrus
2016 hack festival igrus2016 hack festival igrus
2016 hack festival igrus
 
[D2CAMPUS] Dotuator - 능동형 촉감 전달 점자 디스플레이 (BARAM)
[D2CAMPUS] Dotuator - 능동형 촉감 전달 점자 디스플레이 (BARAM)[D2CAMPUS] Dotuator - 능동형 촉감 전달 점자 디스플레이 (BARAM)
[D2CAMPUS] Dotuator - 능동형 촉감 전달 점자 디스플레이 (BARAM)
 
[D2 CAMPUS] 안드로이드 오픈소스 스터디자료 - java OOM, Reference API
[D2 CAMPUS] 안드로이드 오픈소스 스터디자료 - java OOM, Reference API[D2 CAMPUS] 안드로이드 오픈소스 스터디자료 - java OOM, Reference API
[D2 CAMPUS] 안드로이드 오픈소스 스터디자료 - java OOM, Reference API
 
HungryOsori 2016년 1학기 최종 발표
HungryOsori 2016년 1학기 최종 발표HungryOsori 2016년 1학기 최종 발표
HungryOsori 2016년 1학기 최종 발표
 
[D2 CAMPUS] 안드로이드 오픈소스 스터디자료 - OkHttp
[D2 CAMPUS] 안드로이드 오픈소스 스터디자료 - OkHttp[D2 CAMPUS] 안드로이드 오픈소스 스터디자료 - OkHttp
[D2 CAMPUS] 안드로이드 오픈소스 스터디자료 - OkHttp
 
[D2 CAMPUS] 안드로이드 오픈소스 스터디자료 - Http Request
[D2 CAMPUS] 안드로이드 오픈소스 스터디자료 - Http Request[D2 CAMPUS] 안드로이드 오픈소스 스터디자료 - Http Request
[D2 CAMPUS] 안드로이드 오픈소스 스터디자료 - Http Request
 
오픈소스 맛보기 - 정민우님
오픈소스 맛보기 - 정민우님오픈소스 맛보기 - 정민우님
오픈소스 맛보기 - 정민우님
 
Swift and Xcode8
Swift and Xcode8Swift and Xcode8
Swift and Xcode8
 
Swift internals
Swift internalsSwift internals
Swift internals
 
Protocol Oriented Programming in Swift
Protocol Oriented Programming in SwiftProtocol Oriented Programming in Swift
Protocol Oriented Programming in Swift
 
LetSwift RxSwift 시작하기
LetSwift RxSwift 시작하기LetSwift RxSwift 시작하기
LetSwift RxSwift 시작하기
 
Letswift Swift 3.0
Letswift Swift 3.0Letswift Swift 3.0
Letswift Swift 3.0
 
Swift package manager
Swift package managerSwift package manager
Swift package manager
 
개알못의 오픈소스이야기 - 이상준님
개알못의 오픈소스이야기 - 이상준님개알못의 오픈소스이야기 - 이상준님
개알못의 오픈소스이야기 - 이상준님
 
스위프트 성능 이해하기
스위프트 성능 이해하기스위프트 성능 이해하기
스위프트 성능 이해하기
 
안드로이드 개발자를 위한 스위프트
안드로이드 개발자를 위한 스위프트안드로이드 개발자를 위한 스위프트
안드로이드 개발자를 위한 스위프트
 
[Kerference] 시작! 리버싱 - 김종범(KERT)
[Kerference] 시작! 리버싱 - 김종범(KERT)[Kerference] 시작! 리버싱 - 김종범(KERT)
[Kerference] 시작! 리버싱 - 김종범(KERT)
 
[Kerference] Nefarious SQL - 김동호(KERT)
[Kerference] Nefarious SQL - 김동호(KERT)[Kerference] Nefarious SQL - 김동호(KERT)
[Kerference] Nefarious SQL - 김동호(KERT)
 
[Kerference] 쉽고 빠르게 시작하는 Volatility plugin 개발 - 김동현(BoB)
[Kerference] 쉽고 빠르게 시작하는 Volatility plugin 개발 - 김동현(BoB)[Kerference] 쉽고 빠르게 시작하는 Volatility plugin 개발 - 김동현(BoB)
[Kerference] 쉽고 빠르게 시작하는 Volatility plugin 개발 - 김동현(BoB)
 

Similar to SHAKE - 경기 남부 4개대학 연합 프로그래밍 경시대회 본선문제

이산치수학 Project3
이산치수학 Project3이산치수학 Project3
이산치수학 Project3KoChungWook
 
Swift 튜플 (tuples)
Swift 튜플 (tuples)Swift 튜플 (tuples)
Swift 튜플 (tuples)주원 김
 
2019 경인지역 6개대학 연합 프로그래밍 경시대회 shake! 풀이
2019 경인지역 6개대학 연합 프로그래밍 경시대회 shake! 풀이2019 경인지역 6개대학 연합 프로그래밍 경시대회 shake! 풀이
2019 경인지역 6개대학 연합 프로그래밍 경시대회 shake! 풀이현정 김
 
파이썬 문자열 이해하기
파이썬 문자열 이해하기파이썬 문자열 이해하기
파이썬 문자열 이해하기Yong Joon Moon
 
파이썬 문자열 이해하기
파이썬 문자열 이해하기파이썬 문자열 이해하기
파이썬 문자열 이해하기Yong Joon Moon
 

Similar to SHAKE - 경기 남부 4개대학 연합 프로그래밍 경시대회 본선문제 (6)

이산치수학 Project3
이산치수학 Project3이산치수학 Project3
이산치수학 Project3
 
Swift 튜플 (tuples)
Swift 튜플 (tuples)Swift 튜플 (tuples)
Swift 튜플 (tuples)
 
2019 경인지역 6개대학 연합 프로그래밍 경시대회 shake! 풀이
2019 경인지역 6개대학 연합 프로그래밍 경시대회 shake! 풀이2019 경인지역 6개대학 연합 프로그래밍 경시대회 shake! 풀이
2019 경인지역 6개대학 연합 프로그래밍 경시대회 shake! 풀이
 
internetinternet
internetinternetinternetinternet
internetinternet
 
파이썬 문자열 이해하기
파이썬 문자열 이해하기파이썬 문자열 이해하기
파이썬 문자열 이해하기
 
파이썬 문자열 이해하기
파이썬 문자열 이해하기파이썬 문자열 이해하기
파이썬 문자열 이해하기
 

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 - 경기 남부 4개대학 연합 프로그래밍 경시대회 본선문제

  • 2. 2 문제 안내 1. 문제 관련 A. 문제의 인쇄상태에 문제가 있는 경우 스태프에게 문의해주세요 B. 문제의 설명을 정확히 읽어주세요 C. 문제속의 인물과 이야기는 허구입니다 2. 질문 관련 A. 문제 자체에 직접적으로 관련된 내용만 질문하실 수 있습니다 B. 시스템과 관련된 질문은 스태프를 통해주세요 C. 문제 설명에 이미 명시된 내용에 대해서는 답변을 해드리지 않습니다 D. 일부 중요한 질문은 전체 공개로 전환될 수 있습니다. 3. 입력 관련 A. 입력은 stdin(C/C++), System.in(Java)를 통해서 받습니다 B. 모든 입력은 주어진 양식과 조건에 맞추어 주어집니다 C. 양식과 조건을 벗어난 예외적인 데이터는 입력되지 않습니다 4. 출력 관련 A. 출력은 stdout(C/C++), System.out(Java)를 통해서 합니다 B. 출력 양식을 필히 확인하시고 정확히 출력해주세요 C. 지시하지 않은 내용을 출력하면 오답으로 처리될 수 있습니다 5. 제한 관련 A. Java 는 언어적 특성상 메모리와 시간을 조금 더 제공합니다
  • 3. 3 A. 끝말잇기 문제 설명 끝말잇기는 이 전 단어의 마지막 글자로 시작하는 새로운 단어를 말하며 이어가는 게임이다. 각 사람은 자신 바로 이전의 사람이 말한 단어의 끝 글자로 시작하는 단어를 말해야 한다. 물론 존재하지 않는 터무니 없는 단어는 사용할 수 없으므로 이 게임은 전적으로 어휘력이 풍부한 사람이 유리하다. 연애에 서툰 복학생인 우태는 신입생과 친해지기 위하여 MT 에 가기에 앞서 끝말잇기 게임을 준비했다. 단, 몇몇 신입생에게 점수를 따고 싶은 우태는 자신이 원하는 대로 게임이 흘러갈 수 있도록 몇 가지 아래와 같은 규칙을 정했다. • 이 게임에서 사용되는 모든 단어는 영어이다. • 사전의 모든 단어는 항상 사전순으로 정렬되어있다. • 게임에 참가하는 모든 사람은 우태가 만든 끝말잇기 사전에 적힌 단어들 만을 사용할 수 있다. • 우태가 만든 사전에 없는 영단어는 사용할 수 없으며, 사전에 있는 단어는 실존하지 않는 단어여도 상관없다. • 한 사람이 단어를 말하면, 다음 사람이 말하는 단어의 첫 글자는 이 전 사람이 말한 단어의 마지막 글자와 같아야 한다. MT 에 가기 전에 자신이 원하는 대로 끝말잇기 사전을 만들고, 미리 모든 단어를 외워둔 우태는 기대에 가득 차 있었다. 하지만 MT 에 가지 않기로 결정한 모태솔로 재현이는 연서복 우태가 자신처럼 신입생과 친분이 없기를 바랬다. 그래서 재현이는 우태가 동방에 둔 사전을 몰래 훔쳐서 사전에 적힌 단어를 조작해버렸다! 재현이는 우태의 사전을 훔쳐서 각 단어를 구성하는 알파벳을 사전순으로 정렬해버렸다! 즉, 예를 들어 우태의 사전에 lovelyz 라는 단어가 있었다면 재현이가 조작한 사전에는 ellovyz 로 바뀌어 있게 된다. 원본 사전 조작된 사전 apple banana eat kiwi trick aaabnn aelpp aet cikrt iikw <재현이가 사전을 조작하는 예시> 위의 예시에서 원본 사전의 단어로는 banana-apple-eat-trick-kiwi 순서로 모든 단어를 한번씩만 사용하여 게임을 끝낼 수 있다. 이런 경우를 우태는 성공적 게임이라고 한다. MT 에 도착해서 사전이 조작되었다는 사실을 알게 된 우태는 이미 게임의 규칙을 후배들에게 설명해버려서 조작된 사전을 가지고 게임을 진행하는 수 밖에 없었다. 그래도 희망을 버리지 않은 우태는
  • 4. 4 당신에게 조작된 사전을 가지고도 성공적 게임이 가능한 지 확인해 달라는 부탁을 했다. 불쌍한 연서복 우태를 도와주자. 입력형식 첫 줄에 사전에 적힌 단어의 개수를 나타내는 자연수 N 이 주어진다. N 은 2 와 10 사이의 정수이다. 그 후 N 줄에 걸쳐서 각 줄에 하나씩 조작 된 사전에 존재하는 단어들이 사전순으로 정렬된 순서로 주어진다. 각 단어의 길이는 1 글자에서 10 글자 사이다. 모든 입력은 소문자로 주어진다. 출력형식 조작된 사전에 존재하는 단어들을 모두 한 번씩만 사용하여 정확히 N 번만에 게임이 끝나는 경우가 가능하다면 “YES”를 출력한다. 그렇지 않다면 “NO”를 출력한다. 예제 데이터 1 입력 출력 5 aaabnn alpp aet cikrt iikw NO 예제 데이터 2 입력 출력 9 abblosuy aeij eik einy ellovyz gjnsuu ijmu ijn ijsu NO 예제 데이터 3 입력 출력 3 aaabcddef fghhhhh hijjjjjklm YES
  • 5. 5 B. 진격의 거인 문제 설명 사과를 좋아하는 재현이는 위에서 봤을 때 원형인 평평한 도시에 살고 있다. 재현이네 도시 사람들은 집의 위치를 두 가지 방식으로 나타내는데, 첫 번째 방식은 도시의 중심을 원점으로 하여 (𝑥, 𝑦)의 좌표 형식으로 나타내는 것이고, 두 번째 방식은 도시의 중심(원점)으로부터의 거리 𝑟과 동쪽으로 향하는 축(x 축 양의 방향)을 기준으로부터 반시계 방향으로 보았을 때 이루는 각도 θ에 대하여 (𝑟, 𝜃)로 나타내는 것이다. 얼마 전, 평화롭던 재현이네 마을에 거인들이 몰려와 마을의 동쪽과의 각도가 θ)인 선을 기준으로 시계 반대방향으로 각도 θ*만큼의 부채꼴 영역을 쑥대밭으로 만들어 버렸다. 그 곳에 있던 집들이 무너졌음은 물론, 그 영역을 지나갈 수 조차 없게 되었다. <재현이의 도시에서 파괴된 (회색)영역> 재현이는 거인들의 마을의 일부를 파괴한 영향으로 집들 사이를 오가는데에 불편함이 있을 것이라 예상하였다. 재현이는 피해의 규모를 예측하기 위하여 당신에게 도움을 청했다. 마을에 존재하는 각 집들의 위치와 거인에 의해 파괴된 영역을 이루는 각도가 주어질 때, 남아있는 두 집 사이의 최단거리 들 중 최댓값을 구하시오. 입력형식 첫 줄에 재현이네 도시에 존재하는 집의 수 N 이 주어진다. N 은 1 과 4,000 사이의 정수이다. 이후 N 줄에 걸쳐서 한 줄에 하나씩 재현이네 도시에 존재하는 집들의 위치가 좌표 형식으로 주어진다. 재현이네 도시에 존재하는 모든 집들의 좌표는 모두 절대값이 10,000 이하인 정수이다. 마지막 줄에는 θ)와 θ*가 공백을 사이에두고 입력된다. 두 각도는 0 과 360 사이의 정수이다. 출력형식 파괴되지 않은 두 집 사이의 최단거리 중 최댓값을 출력한다. 출력된 값과 답안의 값이 10-. 이하의 상대오차 혹은 절대오차를 가지는 경우 정답으로 인정한다.
  • 6. 6 예제 데이터 1 입력 출력 8 -4 -10-4 8 1 -9 6 -3 6 -9 -7 -5 -4 4 -7 -1 283 60 18.000
  • 7. 7 C. Candy 문제 설명 영희는 지난 주에 철수의 생일 선물로 서로 다른 맛의 사탕 N 개를 준비했다. 사탕은 맛에 따라 1 번부터 𝑁번 까지의 사탕으로 분류된다. 영희는 철수에게 주기 위하여 사탕들을 모두 상자에 담아 정성스럽게 포장하였다. 철수의 생일 날, 영희는 준비해두었던 사탕 꾸러미를 철수에게 줬다. 그런데 철수는 꾸러미에서 이상한 점을 발견했다. 몇 개의 사탕이 이미 포장이 뜯어져 있었다! 철수는 영희에게 물어 원래 들어있던 사탕의 개수는 𝑁개 라는 사실을 알게되었다. 사탕은 하나도 사라지지 않았을 수 도있고, 전부다 사라졌을 수도 있다. 철수는 𝐾(1 ≤ 𝐾 ≤ 𝑁)개의 사탕을 선물 받으면 총 23 만큼의 만족도를 얻는다. 예를 들어서 철수가 1, 3, 4 번 사탕을 선물 받았다면, 8 의 만족도를 느끼게 된다. 단, 철수가 사탕을 하나도 못 받는 경우에는 철수는 0 의 만족도를 느끼게 된다. 이 때, 철수가 사탕 꾸러미를 통해 사탕들을 얻을 수 있는 모든 경우의 수에 대하여 각 경우에 얻을 수 있는 만족도의 합은 얼마일까? 철수의 궁금증을 풀어주기 위하여 이를 계산해주자. 입력 형식 입력의 첫 줄에 서로 다른 사탕의 개수를 나타내는 정수 𝑁이 주어진다. N 은 2 와 104 사이의 정수이다. 출력 형식 첫 줄에 철수가 사탕을 받을 수 있는 모든 경우의 수에 대해 만족도들의 합을 1,000,000,007 로 나눈 나머지를 출력한다. 예제 데이터 1 입력 출력 2 8 - 1 번 사탕만 받은 경우 : 2 - 2 번 사탕만 받은 경우 : 2 - 1 번과 2 번 사탕을 받은 경우 : 4 - 아무 사탕도 받지 못한 경우 : 0
  • 8. 8 D. InterGrid 문제 설명 인류가 살고 있는 우주와는 평행한 또 하나의 우주는 2 차원으로 이루어져 있다. 먼 미래에 인류는 3 차원에 살고있는 스스로와 인류가 만든 물질의 차원을 축소할 수 있는 방법을 찾아내기에 이르렀고, 아울러 평행하는 우주와 우주 사이를 이동할 수 있게 되었다. 2 차원 평행 우주를 여행하는 임무를 맡은 shake 호는 해당 우주의 지도를 받았다. 그 지도에서 모든 위치는 제 1 사분면에 해당하는 영역의 좌표로 표시한다. 즉, 가장 왼쪽 아래의 지점은 (0, 0)으로 표현하며 오른쪽이나 위로 갈수록 각 축의 좌표가 증가하게 된다. <2 차원 우주의 지도 예시> shake 호가 2 차원 우주에서 각 지점을 이동할 때에는 두 지점 사이의 멘하탄 거리만큼의 에너지를 사용하게 된다. 두 점 A(𝑥6, 𝑦6)와 𝐵(𝑥8, 𝑦8)사이의 멘하탄 거리 𝐷 = 𝑥6 − 𝑥8 + 𝑦6 − 𝑦8 이다. 하지만 이 2 차원 우주에는 몇 개의 단방향 웜홀이 존재하는데, 웜 홀을 이용하면 웜 홀의 출발점에서 도착점까지 0 의 에너지를 사용하여 도달할 수 있다. 물론 웜 홀의 출발점에 도달하더라도 무조건 웜 홀을 사용하지는 않아도 된다. shake 호의 현재 위치 A(𝑥6, 𝑦6)와 도달하고자 하는 목적지의 좌표 𝐵(𝑥8, 𝑦8)가 주어질 때, 해당 위치로 이동할 때 사용해야할 최소의 에너지 사용량을 계산해보자.
  • 9. 9 입력 형식 첫 줄에는 𝑥6, 𝑦6, 𝑥8, 𝑦8와 2 차원 우주에 존재하는 웜 홀의 개수를 나타내는 정수 N이 주어진다. N은 0 과 5,000 사이의 정수이다. 그 후 N 줄에 걸쳐서 한 줄에 하나씩 웜홀의 출발점 S 와 도착점 F 의 좌표 𝑥?, 𝑦?, 𝑥@, 𝑦@가 주어진다. 2 차원 우주의 모든 좌표는 0 과 1,000,000 사이의 정수이다. 출력 형식 첫 줄에 shake 호가 A 지점에서 B 지점으로 이동하기 위해 사용해야 할 최소한의 에너지를 정수 형식으로 출력한다. 예제 데이터 1 입력 출력 3 17 7 6 6 9 13 6 17 5 15 6 10 2 19 8 19 2 4 1 18 10 4 3 2 8 16 1 7 9 예제 데이터 2 입력 출력 0 0 1 1 0 2
  • 10. 10 E. Three-Tree 문제 설명 정점의 개수가 N 인 트리가 있다. 트리의 각 정점의 번호는 1 부터 N 사이의 서로 다른 정수이다. 한 트리에 존재하는 길이가 3 인 단순 경로의 수를 S 라 하자. <길이가 3 인 단순 경로가 두 개 존재하는 트리 예시> 예를 들어서, 위의 그림처럼 트리가 있을 경우 길이가 3 인 단순 경로는 [1, 2, 3, 4], [5,2,3,4]로 두 개가 존재한다. 트리에서 단순 경로의 수를 세는 것은 쉬운 문제이다. 그렇다면 트리에 존재하는 단순 경로의 수 S 가 주어질 때에, 실제로 S 개의 길이 3 짜리 단순 경로를 가지는 트리를 복원해보자. 가능한 트리의 종류가 여러가지 인 경우 그 중 아무것이나 출력한다. 단, 트리를 이루는 정점의 개수는 500 개 이하여야 한다. 입력 형식 첫 줄에 문제에서 요구하는 길이가 3 인 단순 경로의 수 S 가 주어진다. S 는 1 과 10,000 사이의 정수이다. 출력 형식 출력의 첫 줄에는 정점의 개수 N 을 출력한다. N 은 500 이하의 자연수여야 한다. 그 후 (N-1)개의 줄에 걸쳐서, 한 줄에 하나의 간선을 이루는 두 정점의 번호를 출력한다. 예제 데이터 1 입력 출력 2 5 1 2 2 3 3 4 2 5
  • 11. 11 F. DNA 비밀번호 문제 설명 평소에 문자열을 가지고 노는 것을 좋아하는 민호는 어느날 DNA 문자열에 대하여 알게 되었다. DNA 문자열은 ‘A’, ‘C’, ‘G’, ‘T’로만 구성되어있는 문자열을 말한다. 예를 들어서 “ACKA”는 DNA 문자열이 아니지만, “ACCA”는 DNA 문자열이다. 이런 신비한 문자열에 완전히 매료된 민호는 길이가 S 인 임의의 DNA 문자열을 만들고, 만들어진 문자열에서 연속된 P 글자를 추출해 비밀번호로 사용하기로 마음먹었다. 하지만 민호는 이렇게 만든 비밀번호에는 큰 문제가 있다는 것을 발견했다. 임의의 DNA 문자열에서 연속 부분 문자열을 추출할 경우, “AAAA”와 같이 보안에 취약한 비밀번호가 만들어 질 수 있기 때문이다. 그래서 민호는 각 알파벳 별로 암호에 최소한으로 포함되어야 할 개수를 정하기로 했다. 원본 DNA 문자열이 “AAACCTGCCAA”이고, 민호가 만들어 낼 비밀번호는 4 글자라고 하자. 민호가 ‘A’는 1 개 이상, ‘C’는 1 개 이상, ‘G’는 1 개 이상, ‘T’는 0 개 이상 사용되어야 한다는 규칙을 정했다고 가정하다. 이 때 “ACCT”는 비밀번호가 될 수 없지만, “GCCA”는 비밀번호가 될 수 있다. 민호가 만든 임의의 DNA 문자열과 비밀번호이 될 수 있는 조건이 주어졌을 때, 민호가 비밀번호를 만들 수 있는 경우의수를 계산해보자. 단, 서로 같은 문자열이더라도 추출한 위치가 다르면 다른 암호로 계산한다. 입력 설명 첫 줄에는 민호가 만든 DNA 문자열의 길이 S 와 비밀번호로 사용할 부분 문자열의 길이 P 가 주어진다. S 와 P 는 1 과 1,000,000 사이의 정수이며 P 는 S 이하이다. 두번째 줄에는 민호가 만든 DNA 문자열이 주어진다. 모든 알파벳은 대문자이다. 세번째 줄에는 비밀번호에 포함되어야 할 각 알파벳의 최소 개수가 주어진다. 각각 ‘A’, ‘C’, ‘G’, ‘T’의 최소 개수를 의미한다. 각 수는 0 과 1,000,000 사이의 정수이다. 출력 설명 첫 줄에 민호가 조건에 맞는 비밀번호를 만들어 낼 수 있는 경우의 수를 출력한다.
  • 12. 12 예제 데이터 1 입력 출력 41 30 AGGAACAGCGACTAACCCACTGAGGGTTACCTCTGCTGCTT 0 5 2 1 12
  • 13. 13 G. I.O.I 문제 설명 모두에게 비밀로 하고 있지만, 사실 재현이는 인기 아이돌 그룹의 멤버 ‘사과’로 활동하고 있다. 재현이는 그룹 내에서 귀여움을 담당하고 있는데, 이를 인정받아 국제적인 아이돌 축제인 I.O.I(International Olympiad of Idols)에 한국 대표로 선발되어 참가하게 되었다. I.O.I 는 기본적으로 축제이지만, 이름에 걸맞게 국가대항전 형식의 대회가 진행된다. 참가하는 각 국가별로 아이돌 N 명을 뽑아 대표팀으로 선발하고, 토너먼트 방식으로 대결하여 최종 우승팀을 결정한다. 재현이의 귀여움을 앞세워 한국 팀은 무난하게 결승에 진출할 수 있었다. 결승전은 크게 단체전과 개인전으로 이루어 지는데, 그 중 개인전은 양 팀에서 한 경기에 각 팀에서 한 명씩 나와 각자 개인의 기량을 뽐내며 대결하는 방식으로, 총 N 번이 진행된다. 개인전에 무승부는 존재하지 않는다. 각 팀의 대진표는 아래와 같은 방식으로 결정한다. 1. 가위 바위 보를 진행하여 이긴 팀이 먼저 선택권을 가진다. 2. 선택권을 가진 팀은 각 팀에서 아직 대진 상대가 정해지지 않은 한 명씩을 골라 그 둘을 대결 상대로 정한다. 그 이후 상대팀에게 선택권이 돌아간다. 3. 2 의 과정을 반복하다가 모든 사람의 대진 상대가 결정되면, 그 뒤에 개인전을 시작한다. 대회가 진행되면서 결승에 진출한 두 팀은 상대에 대한 정보를 완벽히 파악했고, 각자 자기 팀의 선수들이 상대팀의 어떤 선수과 대결을 했을 때 승률이 어느 정도 될지 계산해두었다. 이 분석 결과는 객관적이기 때문에 두 팀의 분석 결과는 완전히 동일하다. 즉 A 팀이 A 팀의 p 선수와 B 팀의 q 선수가 대결할 경우 승률을 40%라고 분석했을 경우, B 팀은 B 팀의 q 선수와 A 팀의 p 선수가 대결할 경우 승률을 60%라고 분석한다는 것이다. 재현이는 두 팀 모두 최선의 전략으로 대결 상대를 정하려고 한다고 할 때, 한국 팀이 첫 가위바위보를 이겼을 때와 졌을 때 두 경우에 대하여 각각 개인전에서 한국이 승리하는 횟수의 기대값을 구하고자 한다. 입력 형식 첫 줄에 각 팀에 소속된 선수의 수 N 이 주어진다. N 은 1 과 8 사이의 정수이다. 그 후 총 N 줄에 걸쳐 각 줄에 N 개의 숫자가 주어진다. i 번째 줄의 j 번째 숫자 𝑝B,C는 한국 팀의 i 번째 선수와 상대 팀의 j 번째 선수가 대결했을 때 한국팀이 승리할 확률을 나타낸다. 출력 형식 한국 팀이 가위바위보를 이겼을 때와 졌을 때의 승리하게 되는 대결의 수의 기대값을 공백으로 구분하여 출력한다. 출력한 답안과 실제 정답과의 오차가 10-. 이하인 경우 답안으로 인정한다.
  • 14. 14 예제 데이터 1 입력 출력 2 0.1 0.7 0.5 0.3 1.20000 0.40000
  • 15. 15 H. 사서왕 준서 문제 설명 준서는 세계 최고의 사서왕이 되는 것이 꿈이다. 사서왕이 되기 위해 모험을 떠난 준서는 세계 곳곳의 도서관을 돌아다니며 구직을 하고 있지만, 대 취업난 시대에 사서가 되는 길은 요원하기만 했다. 낙담하며 국가의 부름에 응하기 위해 준비하던 준서에게 일생일대의 기회가 찾아왔다. 세계 최고의 도서관을 소유하고 있는 ANSI(Ajou Nerd Standards Insititution)의 사서 공채에 합격한 것이다! 합격 메일을 받은 준서는 뛸 듯이 기뻤지만 그것도 잠시, ANSI 의 사서가 되기 위해서는 사서의 기본 소양을 검증받기 위한 교육 과정을 거쳐야만 한다. 보통의 도서관이었다면 사서왕이 되겠다는 일념으로 해냈을 준서지만, ANSI 의 근무환경은 너무나도 열악했다. 그 중에서도 가장 힘든 것은 도서정리이다. 도서관을 찾은 사람들이 책을 찾기 쉽도록 책장의 책을 번호에 대하여 비내림차순으로 배치해야 한다. 하지만 ANSI 회원들 중에서도 Nerd of Nerd, King of Nerd 라고 불리는 용재 D. 애쉬가 하루종일 눌러 앉아서 책들을 마구 열람하고 아무데나 꽂아버리는 것이다! 너드들의 도서관답게 책들의 무게도 보통이 아니어서, 근육통까지 얻은 준서는 매일밤 베갯잇을 눈물로 적시며 보냈다. 가엾은 준서가 군인이 아닌 사서로서 일을 할 수 있도록, 책을 정리하는데에 필요한 최소의 노동력은 얼마인지 계산해주자. 노동력이란 책을 옮기는데에 사용한 힘들의 총 합으로, 책 한권을 옮기기 위해서는 이동거리와 상관 없이 해당 책의 무게만큼의 힘이 필요하다. 새로운 책을 꽂을 책장의 공간은 항상 넉넉하며, 도서 정리는 책 사이의 공간은 무시한 채 책의 순서만 맞으면 된다. 입력 설명 첫 줄에 준서가 정리해야하는 책의 수 N 이 들어온다. N 은 1 과 5,000 사이의 정수이다. 두 번째 줄에는 준서가 정리해야하는 책의 번호가 N 개 주어진다. 각 번호의 위치는 현재 책이 꽂혀진 순서와 동일하다. 또한 모든 책의 번호는 0 과 1,000 사이의 실수이다. 세 번째 줄에는 각 책의 무게가 꽂힌 순서대로 N 개 주어진다. 각 책의 무게는 1 과 10,000 사이의 정수이다. 출력 설명 한 줄에 책을 정리하는 데 필요한 최소의 노동력을 정수 형식으로 출력한다.
  • 16. 16 예제 데이터 1 입력 출력 3 802.11 813.1 107 4 5 6 6 - 3 번째 책을 맨 앞으로 옮길 때 드는 힘 6 이 최소이다. 예제 데이터 2 입력 출력 9 813.8 812 816 813 811 813 813.6 801.9 880.1 6 20 5 8 17 20 12 41 6 69 - 1, 3, 5, 8 번 책을 맞는 자리로 옮기는 힘의 합 6 + 5 + 17 + 41 = 69 가 최소가 된다