SlideShare a Scribd company logo
1 of 128
Download to read offline
제5회 전국 대학생 프로그래밍
동아리 연합 여름 대회 풀이
풀이입니다.
통계
• A  -­  Dr.  L's  exam  
• 출제자:  정현환  
• First  solve:  DPneuDP  @서울대  ,  3분  
• 정답률:  68/87,  78.161%  
• B  – 뱀
• 출제자:  이태현  
• First  solve:  Mola Mola @서울대 ,  112분
• 정답률:  12/141,  8.511%
• C  – 사전 조사
• 출제자:  박수찬  
• First  solve:  DPneuDP @서울대 ,  226분
• 정답률:  3/35  8.571%
통계
• D  – Bulb
• 출제자:  윤지학  
• First  solve:  Mola Mola @서울대 ,  231분
• 정답률:  3/8,  37.500%
• E  -­ How  many  binary  sequences?
• 출제자:  정현환  
• First  solve:  gcc @서울대 ,  94분
• 정답률:  11/41,  26.829%
• F  -­ Speak  your  mind!
• 출제자:  조승현  (bryan)  
• First  solve:  NonsanWarrior @서울대 ,  31분
• 정답률:  22/103,  21.359%
• G  – 내가 어디를 거쳐갔더라?  
• 출제자:  조승현  (ainta)  
• 정답률:  0/0,  0.000%
• H  -­ 프로도의 선물 포장
• 출제자:  김선영  
• First  solve:  LifeIsNotThatEasy @서울대 ,  24분
• 정답률:  36/107, 33.645%
• I  – International  Meeting
• 출제자:  김선영  
• First  solve:  Jungrae10002gija   @한양대 ,  7분
• 정답률:  55/255,  21.569%
통계
• J  – 분할  
• 출제자:  김경근  
• First  solve:  gcc @서울대 ,  140분
• 정답률:  7/61,  11.475%
• K  -­ The  festival  must  go  on  
• 출제자:  조승현  (ainta)  
• First  solve:  Mola Mola @서울대 ,  242분
• 정답률:  2/8,  25.000%
• L  -­ 수열의  장인  
• 출제자:  박수찬  
• First  solve:  Accepted  @고려대 ,  23분
• 정답률:  25/317,  7.886%
통계
A.  Dr.  L’s  exam
𝒋 1 2 3 4 5 6 7 8 9 10
𝒋 − 𝟏   𝐦𝐨𝐝  𝟓 1 2 3 4 5 1 2 3 4 5
A.  Dr.  L’s  exam
• 제출한 답안이 “1  2  3  4  5  1  2  3  4  5”이면 재시험 대상
𝒋 1 2 3 4 5 6 7 8 9 10
𝒋 − 𝟏   𝐦𝐨𝐝  𝟓 1 2 3 4 5 1 2 3 4 5
A.  Dr.  L’s  exam
• 제출한 답안이 “1  2  3  4  5  1  2  3  4  5”이면 재시험 대상
• 한 줄을 통째로 받아서 문자열 비교하면 편합니다
𝒋 1 2 3 4 5 6 7 8 9 10
𝒋 − 𝟏   𝐦𝐨𝐝  𝟓 1 2 3 4 5 1 2 3 4 5
B.  뱀
• 뱀의 경로는 이어지는 선분들이라 생각 가능
B.  뱀
• 뱀의 경로는 이어지는 선분들이라 생각 가능
• 수평 혹은 수직으로 이루어진 선분들 사이의 교차 문제
B.  뱀
• 뱀의 경로는 이어지는 선분들이라 생각 가능
• 수평 혹은 수직으로 이루어진 선분들 사이의 교차 문제
• 어느 교점까지 몇 초가 걸릴 지 계산하자
B.  뱀
• 뱀의 경로는 이어지는 선분들이라 생각 가능
• 수평 혹은 수직으로 이루어진 선분들 사이의 교차 문제
• 어느 교점까지 몇 초가 걸릴 지 계산하자
• 그 선분 전까지의 ∑ 𝑡 𝑖 +  교점을 구하고 선분의 시작점부터 거리
B.  뱀
• 뱀의 경로는 이어지는 선분들이라 생각 가능
• 수평 혹은 수직으로 이루어진 선분들 사이의 교차 문제
• 어느 교점까지 몇 초가 걸릴 지 계산하자
• 그 선분 전까지의 ∑ 𝑡 𝑖 +  교점을 구하고 선분의 시작점부터 거리
• 𝑁 ≤ 1,000이므로 𝑂 𝑁2
에 해결 가능
B.  뱀
• 뱀의 경로는 이어지는 선분들이라 생각 가능
• 수평 혹은 수직으로 이루어진 선분들 사이의 교차 문제
• 어느 교점까지 몇 초가 걸릴 지 계산하자
• 그 선분 전까지의 ∑ 𝑡 𝑖 +  교점을 구하고 선분의 시작점부터 거리
• 𝑁 ≤ 1,000이므로 𝑂 𝑁2
에 해결 가능
• 𝐿 ≤ 104
→ 지나온 격자들을 다 저장하면 Memory  Limit  Exceeded
C.  사전 조사
• 𝐴는 언제 찾을 수 있을까?
C.  사전 조사
• 𝐴는 언제 찾을 수 있을까?
⋯ , 𝐴, ⋯
C.  사전 조사
• 𝐴는 언제 찾을 수 있을까?
⋯ , 𝐴, ⋯
𝐴를 읽기 전에
얼마인지 알 수 없다
C.  사전 조사
• 𝐴는 언제 찾을 수 있을까?
⋯ , 𝐴, ⋯
𝐴를 읽기 전에
얼마인지 알 수 없다
, 𝐴 − 1 , ⋯
𝐴 − 1이 나와야 할 자리에
안 나왔다면,  알 수 있다
C.  사전 조사
• 𝐴는 언제 찾을 수 있을까?
⋯ , 𝐴, ⋯
𝐴를 읽기 전에
얼마인지 알 수 없다
, 𝐴 − 1 , ⋯
𝐴 − 1이 나와야 할 자리에
안 나왔다면,  알 수 있다
사전에서
𝐴가 나타난 이후
사전에서
𝐴 − 1이 있어야 할 곳을
지난 이후
C.  사전 조사
• 𝐵는 언제 찾을 수 있을까?
C.  사전 조사
• 𝐵는 언제 찾을 수 있을까?
⋯ , 𝐵, ⋯
𝐵를 읽기 전에
얼마인지 알 수 없다
, 𝐵 + 1 , ⋯
𝐵 + 1이 나와야 할 자리에
안 나왔다면,  알 수 있다
사전에서
𝐵가 나타난 이후
사전에서
𝐵 + 1이 있어야 할 곳을
지난 이후
C.  사전 조사
• 𝐵는 언제 찾을 수 있을까?
⋯ , 𝐵, ⋯
𝐵를 읽기 전에
얼마인지 알 수 없다
, 𝐵 + 1 , ⋯
𝐵 + 1이 나와야 할 자리에
안 나왔다면,  알 수 있다
사전에서
𝐵가 나타난 이후
사전에서
𝐵 + 1이 있어야 할 곳을
지난 이후
• 𝐴는 언제 찾을 수 있을까?
⋯ , 𝐴, ⋯
𝐴를 읽기 전에
얼마인지 알 수 없다
, 𝐴 − 1 , ⋯
𝐴 − 1이 나와야 할 자리에
안 나왔다면,  알 수 있다
사전에서
𝐴가 나타난 이후
사전에서
𝐴 − 1이 있어야 할 곳을
지난 이후
C.  사전 조사
• 𝐵는 언제 찾을 수 있을까?
⋯ , 𝐵, ⋯
𝐵를 읽기 전에
얼마인지 알 수 없다
, 𝐵 + 1 , ⋯
𝐵 + 1이 나와야 할 자리에
안 나왔다면,  알 수 있다
사전에서
𝑩가 나타난 이후
사전에서
𝑩 + 𝟏이 있어야 할 곳을
지난 이후
• 𝐴는 언제 찾을 수 있을까?
⋯ , 𝐴, ⋯
𝐴를 읽기 전에
얼마인지 알 수 없다
, 𝐴 − 1 , ⋯
𝐴 − 1이 나와야 할 자리에
안 나왔다면,  알 수 있다
사전에서
𝑨가 나타난 이후
사전에서
𝑨 − 𝟏이 있어야 할 곳을
지난 이후
C.  사전 조사
• 결론:  사전에서 𝐴, 𝐴 − 1, 𝐵, 𝐵 + 1이 있어야 할 위치를 모두 지난 순
간 수찬이는 𝐴, 𝐵를 알아낼 수 있다.
C.  사전 조사
• 결론:  사전에서 𝐴, 𝐴 − 1, 𝐵, 𝐵 + 1이 있어야 할 위치를 모두 지난 순
간 수찬이는 𝐴, 𝐵를 알아낼 수 있다.
• 바뀐 문제:  𝐴 이상 𝐵 이하의 자연수 중 사전순으로 𝑋보다 작거나 같
은 것의 개수는?
C.  사전 조사
• 결론:  사전에서 𝐴, 𝐴 − 1, 𝐵, 𝐵 + 1이 있어야 할 위치를 모두 지난 순
간 수찬이는 𝐴, 𝐵를 알아낼 수 있다.
• 바뀐 문제:  𝐴 이상 𝐵 이하의 자연수 중 사전순으로 𝑋보다 작거나 같
은 것의 개수는?
• 더 간단히:  1 이상 𝑛 이하의 자연수 중 사전순으로 𝑋보다 작거나 같
은 것의 개수는?
C.  사전 조사
• 더 간단히:  1  이상 𝑛 이하의 자연수 중 사전순으로 𝑋보다 작거나 같
은 것의 개수는?
• 설명하기 어려우니 예를 들어봅시다.
C.  사전 조사
• 더 간단히:  1  이상 𝑛 이하의 자연수 중 사전순으로 𝑋보다 작거나 같
은 것의 개수는?
• 설명하기 어려우니 예를 들어봅시다.
• 𝑋 = 5167이라면?
C.  사전 조사
• 더 간단히:  1  이상 𝑛 이하의 자연수 중 사전순으로 𝑋보다 작거나 같
은 것의 개수는?
• 설명하기 어려우니 예를 들어봅시다.
• 𝑋 = 5167이라면?
• 1,  2,  3,  4로 시작하는 모든 수: 𝑋보다 사전에서 앞에 있다.
C.  사전 조사
• 더 간단히:  1  이상 𝑛 이하의 자연수 중 사전순으로 𝑋보다 작거나 같
은 것의 개수는?
• 설명하기 어려우니 예를 들어봅시다.
• 𝑋 = 5167이라면?
• 1,  2,  3,  4로 시작하는 모든 수: 𝑋보다 사전에서 앞에 있다.
• 50으로 시작하는 모든 수:   𝑋보다 사전에서 앞에 있다.
C.  사전 조사
• 더 간단히:  1  이상 𝑛 이하의 자연수 중 사전순으로 𝑋보다 작거나 같
은 것의 개수는?
• 설명하기 어려우니 예를 들어봅시다.
• 𝑋 = 5167이라면?
• 1,  2,  3,  4로 시작하는 모든 수: 𝑋보다 사전에서 앞에 있다.
• 50으로 시작하는 모든 수:   𝑋보다 사전에서 앞에 있다.
• 510,  511,  …,  515로 시작하는 모든 수:   𝑋보다 사전에서 앞에 있다.
C.  사전 조사
• 더 간단히:  1  이상 𝑛 이하의 자연수 중 사전순으로 𝑋보다 작거나 같
은 것의 개수는?
• 설명하기 어려우니 예를 들어봅시다.
• 𝑋 = 5167이라면?
• 1,  2,  3,  4로 시작하는 모든 수: 𝑋보다 사전에서 앞에 있다.
• 50으로 시작하는 모든 수:   𝑋보다 사전에서 앞에 있다.
• 510,  511,  …,  515로 시작하는 모든 수:   𝑋보다 사전에서 앞에 있다.
• 5160,  5161,  …,  5166로 시작하는 모든 수:   𝑋보다 사전에서 앞에 있다.
C.  사전 조사
• 더 간단히:  1  이상 𝑛 이하의 자연수 중 사전순으로 𝑋보다 작거나 같
은 것의 개수는?
• 설명하기 어려우니 예를 들어봅시다.
• 𝑋 = 5167이라면?
• 1,  2,  3,  4로 시작하는 모든 수: 𝑋보다 사전에서 앞에 있다.
• 50으로 시작하는 모든 수:   𝑋보다 사전에서 앞에 있다.
• 510,  511,  …,  515로 시작하는 모든 수:   𝑋보다 사전에서 앞에 있다.
• 5160,  5161,  …,  5166로 시작하는 모든 수:   𝑋보다 사전에서 앞에 있다.
• 5167:  𝑋이다.
C.  사전 조사
• 더 간단히:  1  이상 𝑛 이하의 자연수 중 사전순으로 𝑋보다 작거나 같
은 것의 개수는?
• 이런 식으로 접두사가 𝑝인 자연수들 중 1  이상 𝑛 이하인 것의 개수를
세어 주면 됩니다.
C.  사전 조사
• 더 간단히:  1  이상 𝑛 이하의 자연수 중 사전순으로 𝑋보다 작거나 같
은 것의 개수는?
• 이런 식으로 접두사가 𝑝인 자연수들 중 1  이상 𝑛 이하인 것의 개수를
세어 주면 됩니다.
• 한  테스트  케이스당  𝑂 logEF
2
𝑛 에 해결 가능합니다.
D.  Bulb
• 전선의 특징 관찰
D.  Bulb
• 격자선마다 정점을 만들고 간선을 이어준다
• 색을 칠해준다
D.  Bulb
q l q *
O O q q
* q l q
D.  Bulb
D.  Bulb
D.  Bulb
E.  How  many  binary  sequences?
• 참고:  원래 문제는 굉장히 어려웠습니다.
E.  How  many  binary  sequences?
• 참고:  원래 문제는 굉장히 어려웠습니다.
2 2 1 0 2 1 2𝒁
𝑿
𝒀
1
1
1
1
1
1
0
0
1
1
0/1 0/1
1/0 1/0
E.  How  many  binary  sequences?
• 참고:  원래 문제는 굉장히 어려웠습니다.
• 각 𝑍M마다 𝑋, 𝑌의 후보가 4개 생긴다
2 2 1 0 2 1 2𝒁
𝑿
𝒀
1
1
1
1
1
1
0
0
1
1
0/1 0/1
1/0 1/0
E.  How  many  binary  sequences?
• 참고:  원래 문제는 굉장히 어려웠습니다.
• 각 𝑍M마다 𝑋, 𝑌의 후보가 4개 생긴다
• 사실 2개
2 2 1 0 2 1 2𝒁
𝑿
𝒀
1
1
1
1
1
1
0
0
1
1
0/1 0/1
1/0 1/0
E.  How  many  binary  sequences?
• 참고:  원래 문제는 굉장히 어려웠습니다.
• 각 𝑍M마다 𝑋, 𝑌의 후보가 4개 생긴다
• 사실 2개
• 𝑋, 𝑌는 순서가 바뀌어도상관 없으므로
2 2 1 0 2 1 2𝒁
𝑿
𝒀
1
1
1
1
1
1
0
0
1
1
0/1 0/1
1/0 1/0
E.  How  many  binary  sequences?
• 참고:  원래 문제는 굉장히 어려웠습니다.
• 각 𝑍M마다 𝑋, 𝑌의 후보가 4개 생긴다
• 사실 2개
• 𝑋, 𝑌는 순서가 바뀌어도상관 없으므로
• 그래서 모든 2Q
개의 경우를 순회하며 답을 찾으면 된다.
2 2 1 0 2 1 2𝒁
𝑿
𝒀
1
1
1
1
1
1
0
0
1
1
0/1 0/1
1/0 1/0
E.  How  many  binary  sequences?
• 참고:  원래 문제는 굉장히 어려웠습니다.
• 각 𝑍M마다 𝑋, 𝑌의 후보가 4개 생긴다
• 사실 2개
• 𝑋, 𝑌는 순서가 바뀌어도상관 없으므로
• 그래서 모든 2Q
개의 경우를 순회하며 답을 찾으면 된다.
• 유의:  문자열등으로 비교하여 𝑂 2Q
𝐾 로 풀면 제한 시간 초과
2 2 1 0 2 1 2𝒁
𝑿
𝒀
1
1
1
1
1
1
0
0
1
1
0/1 0/1
1/0 1/0
F.  Speak  your  mind!
• 먼저 입력 범위의 모든 정수에 대해 답을 구합니다
F.  Speak  your  mind!
• 먼저 입력 범위의 모든 정수에 대해 답을 구합니다
• ±2T
의 경우 답은 𝑘 + 1
F.  Speak  your  mind!
• 먼저 입력 범위의 모든 정수에 대해 답을 구합니다
• ±2T
의 경우 답은 𝑘 + 1
• 𝑚을 𝑝개의 단어로 표현할 수 있다면 𝑚 ± 2W
의 답은 𝑝 + 𝑙 + 5
F.  Speak  your  mind!
• 먼저 입력 범위의 모든 정수에 대해 답을 구합니다
• ±2T
의 경우 답은 𝑘 + 1
• 𝑚을 𝑝개의 단어로 표현할 수 있다면 𝑚 ± 2W
의 답은 𝑝 + 𝑙 + 5
• Dijkstra 비슷하게 하면 답을 구할 수 있음.  근데 다들 DP로 풀더라고요..
F.  Speak  your  mind!
• 먼저 입력 범위의 모든 정수에 대해 답을 구합니다
• ±2T
의 경우 답은 𝑘 + 1
• 𝑚을 𝑝개의 단어로 표현할 수 있다면 𝑚 ± 2W
의 답은 𝑝 + 𝑙 + 5
• Dijkstra 비슷하게 하면 답을 구할 수 있음.  근데 다들 DP로 풀더라고요..
• 0을 표현하는 데 필요한 단어 수는 6입니다.
F.  Speak  your  mind!
• 먼저 입력 범위의 모든 정수에 대해 답을 구합니다
• ±2T
의 경우 답은 𝑘 + 1
• 𝑚을 𝑝개의 단어로 표현할 수 있다면 𝑚 ± 2W
의 답은 𝑝 + 𝑙 + 5
• Dijkstra 비슷하게 하면 답을 구할 수 있음.  근데 다들 DP로 풀더라고요..
• 0을 표현하는 데 필요한 단어 수는 6입니다.
• 입력받은 숫자마다 그에 대한 답을 출력합니다.
F.  Speak  your  mind!
• 먼저 입력 범위의 모든 정수에 대해 답을 구합니다
• ±2T
의 경우 답은 𝑘 + 1
• 𝑚을 𝑝개의 단어로 표현할 수 있다면 𝑚 ± 2W
의 답은 𝑝 + 𝑙 + 5
• Dijkstra 비슷하게 하면 답을 구할 수 있음.  근데 다들 DP로 풀더라고요..
• 0을 표현하는 데 필요한 단어 수는 6입니다.
• 입력받은 숫자마다 그에 대한 답을 출력합니다.
• Shakespeare  Programming  Language는 좋은 프로그래밍 언어입
니다.
G.  내가 어디를 거쳐갔더라?
• DFS traversal을 통해 간선을 tree  edge와 back  edge로 구분 (DFS  
tree 생성)
G.  내가 어디를 거쳐갔더라?
• DFS traversal을 통해 간선을 tree  edge와 back  edge로 구분 (DFS  
tree 생성)
• 각 노드를 root로 하는 subtree를 구간으로 표현 가능
G.  내가 어디를 거쳐갔더라?
• DFS traversal을 통해 간선을 tree  edge와 back  edge로 구분 (DFS  
tree 생성)
• 각 노드를 root로 하는 subtree를 구간으로 표현 가능
• 이를 통해 승현이네 집 u와 민수네 집 v가 주어졌을 때,   u와 v가 DFS
tree에서 서로 조상-­자손 관계인지 아닌지 판단 가능
1
2
3 4 7
8 9 10
11
5
6
2의 subtree에도,  5의 subtree
에도 포함되지 않는 노드는 모
두 지날 수 있다.1
2
3 4 7
8 9 10
11
5
6
1
2
3 4 7
8 9 10
11
5
6
2의 subtree에 있는 노드 중에
서,  3의 경우 2의 조상으로 가
는 back edge가 있으므로 지날
수 있는 정점이다.
11의 경우도 3과 마찬가지로 7
의 조상인 5와 연결되어 지날
수 있는 정점이다.
1
2
3 4 7
8 9 10
11
5
6
10번 정점을 root로 하는
subtree에 있는 정점들은 11로
갈 수 있으므로 가능한 정점이
다.
1
2
3 4 7
8 9 10
11
5
6
그 외 정점들은 지나는 것이 불
가능함을 알 수 있다.
G.  내가 어디를 거쳐갔더라?
• 각 정점에 대해,  자신을 거치지 않고 자신의 조상 노드로 갈 수 없는
정점 개수를 저장한다.    (u번 정점에 대한 이 값 : Cnt[u])
• 이는 DFS  traversal을 하면서 같이 구할 수 있다.  (절선 구하기)
G.  내가 어디를 거쳐갔더라?
• 1.  u와 v가 서로 조상 -­ 자손 관계가 아닐 경우
• u의 subtree에도 포함되지 않고,  v의 subtree에도 포함되지 않는 정점은
방문 가능
• N  -­ Cnt[u]  +  Cnt[v]가 답
G.  내가 어디를 거쳐갔더라?
• 2.
 u가 v의 조상인 경우
– v의 subtree 중에서는 Cnt[v]개만큼 방문 불가능
u
w
v
H.  프로도의 선물 포장
• 선물의 배치 방법은 크게 두 가지
H.  프로도의 선물 포장
• 선물의 배치 방법은 크게 두 가지
1.  세 선물 상자를 일렬로 놓기
2.  한 선물상자 |  다른 두 선물 상자
H.  프로도의 선물 포장
• 선물의 배치 방법은 크게 두 가지
• 가능한 모든 방법을 다 돌려봅시다.
1.  세 선물 상자를 일렬로 놓기
2.  한 선물상자 |  다른 두 선물 상자
H.  프로도의 선물 포장
• 선물의 배치 방법은 크게 두 가지
• 가능한 모든 방법을 다 돌려봅시다.
§ 90도 회전 2Y
가지,  선물 순서 3!가지를 고려해야 합니다
1.  세 선물 상자를 일렬로 놓기
2.  한 선물상자 |  다른 두 선물 상자
I.  International  meeting
• UTC+𝑥에서 현재 𝑛시라면,  UTC+𝑦에서는 몇 시일까?
I.  International  meeting
• UTC+𝑥에서 현재 𝑛시라면,  UTC+𝑦에서는 몇 시일까?
• UTC+0에서 𝑛 − 𝑥시
I.  International  meeting
• UTC+𝑥에서 현재 𝑛시라면,  UTC+𝑦에서는 몇 시일까?
• UTC+0에서 𝑛 − 𝑥시
• UTC+𝑦에서 𝑛 − 𝑥 + 𝑦시
I.  International  meeting
• UTC+𝑥에서 현재 𝑛시라면,  UTC+𝑦에서는 몇 시일까?
• UTC+0에서 𝑛 − 𝑥시
• UTC+𝑦에서 𝑛 − 𝑥 + 𝑦시
• 따라서 𝑛 − 𝑥 + 𝑦를 구해서 잘 출력합니다.
I.  International  meeting
• UTC+𝑥에서 현재 𝑛시라면,  UTC+𝑦에서는 몇 시일까?
• UTC+0에서 𝑛 − 𝑥시
• UTC+𝑦에서 𝑛 − 𝑥 + 𝑦시
• 따라서 𝑛 − 𝑥 + 𝑦를 구해서 잘 출력합니다.
• 하지만 우리에게는 0.5가 남았다!
I.  International  meeting
• UTC+𝑥에서 현재 𝑛시라면,  UTC+𝑦에서는 몇 시일까?
• UTC+0에서 𝑛 − 𝑥시
• UTC+𝑦에서 𝑛 − 𝑥 + 𝑦시
• 따라서 𝑛 − 𝑥 + 𝑦를 구해서 잘 출력합니다.
• 하지만 우리에게는 0.5가 남았다!
• 0.5시 =  30분
I.  International  meeting
• UTC+𝑥에서 현재 𝑛시라면,  UTC+𝑦에서는 몇 시일까?
• UTC+0에서 𝑛 − 𝑥시
• UTC+𝑦에서 𝑛 − 𝑥 + 𝑦시
• 따라서 𝑛 − 𝑥 + 𝑦를 구해서 잘 출력합니다.
• 하지만 우리에게는 0.5가 남았다!
• 0.5시 =  30분
• 역시 잘 출력합니다.
J. 분할
• 한 차원만 생각하면
Depth 0 : 14
J. 분할
• 한 차원만 생각하면
Depth 0 : 14
Depth 1 : 7 7
J. 분할
• 한 차원만 생각하면
Depth 0 : 14
Depth 1 : 7 7
Depth 2 : 3 4 3 4
J. 분할
• 한 차원만 생각하면
Depth 0 : 14
Depth 1 : 7 7
Depth 2 : 3 3 4 4
J. 분할
• 한 차원만 생각하면
Depth 0 : 14
Depth 1 : 7 7
Depth 2 : 3 3 4 4
Depth 3 : 1 2 1 2 2 2 2 2
J. 분할
• 한 차원만 생각하면
Depth 0 : 14
Depth 1 : 7 7
Depth 2 : 3 3 4 4
Depth 3 : 1 1 2 2 2 2 2 2
J. 분할
Depth 0
6
7
J. 분할
Depth 1
3
3
3
4
J. 분할
Depth 2 1
1 2 2 2
1
2
2
J. 분할
Depth 2 1
1 2 2 2
1
2
2
J. 분할
Depth 2
2 2 2
2
2
J. 분할
Depth 3
1
1
1
1
1 1 1 1 1 1
J. 분할
결과
J. 분할
• 실제로 할 때는 배열의 크기가 너무 크기 때문에, 같은 depth에
서 1차원 크기의 종류가 두 개 이하, 2차원 배열의 종류는 네 개
이하라는 사실을 이용하여 각 크기에 대해 개수가 몇 개인지 저
장하여 이전 depth에서 다음 depth에 있는 배열 종류와 그 개
수를 저장하여 문제를 해결할 수 있습니다.
K.  The  festival  must  go  on
• 최대 길이가 𝑙일 때 𝑀개의 간선을 선택할 수 있는가?
K.  The  festival  must  go  on
• 최대 길이가 𝑙일 때 𝑀개의 간선을 선택할 수 있는가?
• 있다면?  – 최대 길이가 𝑙 이상이어도 선택 가능
K.  The  festival  must  go  on
• 최대 길이가 𝑙일 때 𝑀개의 간선을 선택할 수 있는가?
• 있다면?  – 최대 길이가 𝑙 이상이어도 선택 가능
• 없다면?  – 최대 길이가 𝑙 이하여도 선택 불가능
K.  The  festival  must  go  on
• 최대 길이가 𝑙일 때 𝑀개의 간선을 선택할 수 있는가?
• 있다면?  – 최대 길이가 𝑙 이상이어도 선택 가능
• 없다면?  – 최대 길이가 𝑙 이하여도 선택 불가능
• 따라서 결정 문제로 바뀐다
K.  The  festival  must  go  on
• 최대 길이가 𝑙일 때 𝑀개의 간선을 선택할 수 있는가?
• 있다면?  – 최대 길이가 𝑙 이상이어도 선택 가능
• 없다면?  – 최대 길이가 𝑙 이하여도 선택 불가능
• 따라서 결정 문제로 바뀐다
• 이분 탐색(Parametric  Search)을 통해 𝑙의 값을 정할 수 있다
K.  The  festival  must  go  on
• 최대 길이가 𝑙일 때 𝑀개의 간선을 선택할 수 있는가?
• 요약:  탐욕 알고리즘
K.  The  festival  must  go  on
• 최대 길이가 𝑙일 때 𝑀개의 간선을 선택할 수 있는가?
• 요약:  탐욕 알고리즘
• 𝑢를 루트로 하는 각 서브트리마다,
K.  The  festival  must  go  on
• 최대 길이가 𝑙일 때 𝑀개의 간선을 선택할 수 있는가?
• 요약:  탐욕 알고리즘
• 𝑢를 루트로 하는 각 서브트리마다,
§ 최대 길이가 𝑙 이하이면서
K.  The  festival  must  go  on
• 최대 길이가 𝑙일 때 𝑀개의 간선을 선택할 수 있는가?
• 요약:  탐욕 알고리즘
• 𝑢를 루트로 하는 각 서브트리마다,
§ 최대 길이가 𝑙 이하이면서
§ 선택하는 간선의 수를 최대화하면서
K.  The  festival  must  go  on
• 최대 길이가 𝑙일 때 𝑀개의 간선을 선택할 수 있는가?
• 요약:  탐욕 알고리즘
• 𝑢를 루트로 하는 각 서브트리마다,
§ 최대 길이가 𝑙 이하이면서
§ 선택하는 간선의 수를 최대화하면서
§ 루트에서 끝나는 선택된 간선들로만 이루어진 경로의 최대 길이를 최소화하는
K.  The  festival  must  go  on
• 최대 길이가 𝑙일 때 𝑀개의 간선을 선택할 수 있는가?
• 요약:  탐욕 알고리즘
• 𝑢를 루트로 하는 각 서브트리마다,
§ 최대 길이가 𝑙 이하이면서
§ 선택하는 간선의 수를 최대화하면서
§ 루트에서 끝나는 선택된 간선들로만 이루어진 경로의 최대 길이를 최소화하는
• 선택 방법을 찾아낸다.
K.  The  festival  must  go  on
• 최대 길이가 𝑙일 때 𝑀개의 간선을 선택할 수 있는가?
• 요약:  탐욕 알고리즘
• 𝑢를 루트로 하는 각 서브트리마다,
§ 최대 길이가 𝑙 이하이면서
§ 선택하는 간선의 수를 최대화하면서
§ 루트에서 끝나는 선택된 간선들로만 이루어진 경로의 최대 길이를 최소화하는
• 선택 방법을 찾아낸다.
간선 최대한 많이
선택
이 경로의 길이
최소화
𝑢
최대 길이 ≤ 𝑙
K.  The  festival  must  go  on
• 최대 길이가 𝑙일 때 𝑀개의 간선을 선택할 수 있는가?
• 요약:  탐욕 알고리즘
𝑎 𝑏
𝑢
𝑐
K.  The  festival  must  go  on
• 최대 길이가 𝑙일 때 𝑀개의 간선을 선택할 수 있는가?
• 요약:  탐욕 알고리즘
𝑎 𝑏
𝑢
𝑐
루트가 끝인 경로의 길이가 긴 순으로 정렬
K.  The  festival  must  go  on
• 최대 길이가 𝑙일 때 𝑀개의 간선을 선택할 수 있는가?
• 요약:  탐욕 알고리즘
𝑎 𝑏
𝑢
𝑐
K.  The  festival  must  go  on
• 최대 길이가 𝑙일 때 𝑀개의 간선을 선택할 수 있는가?
• 요약:  탐욕 알고리즘
𝑎 𝑏
𝑢
𝑐
K.  The  festival  must  go  on
• 최대 길이가 𝑙일 때 𝑀개의 간선을 선택할 수 있는가?
• 요약:  탐욕 알고리즘
𝑎 𝑏
𝑢
𝑐
초록색 경로의 길이 ≤ 𝑙이면?
-­  모든 보라색 간선 선택 가능
K.  The  festival  must  go  on
• 최대 길이가 𝑙일 때 𝑀개의 간선을 선택할 수 있는가?
• 요약:  탐욕 알고리즘
𝑎 𝑏
𝑢
𝑐
초록색 경로의 길이 ≤ 𝑙이면?
-­  모든 보라색 간선 선택 가능
아니면?
K.  The  festival  must  go  on
• 최대 길이가 𝑙일 때 𝑀개의 간선을 선택할 수 있는가?
• 요약:  탐욕 알고리즘
𝑎 𝑏
𝑢
𝑐
K.  The  festival  must  go  on
• 최대 길이가 𝑙일 때 𝑀개의 간선을 선택할 수 있는가?
• 요약:  탐욕 알고리즘
𝑎 𝑏
𝑢
𝑐
K.  The  festival  must  go  on
• 최대 길이가 𝑙일 때 𝑀개의 간선을 선택할 수 있는가?
• 요약:  탐욕 알고리즘
𝑎 𝑏
𝑢
𝑐
K.  The  festival  must  go  on
• 최대 길이가 𝑙일 때 𝑀개의 간선을 선택할 수 있는가?
• 요약:  탐욕 알고리즘
𝑎 𝑏
𝑢
𝑐
초록색 경로의 길이 ≤ 𝑙이면?
-­  모든 보라색 간선 선택 가능
K.  The  festival  must  go  on
• 최대 길이가 𝑙일 때 𝑀개의 간선을 선택할 수 있는가?
• 요약:  탐욕 알고리즘
𝑎 𝑏
𝑢
𝑐
초록색 경로의 길이 ≤ 𝑙이면?
-­  모든 보라색 간선 선택 가능
아니면?
K.  The  festival  must  go  on
• 최대 길이가 𝑙일 때 𝑀개의 간선을 선택할 수 있는가?
• 요약:  탐욕 알고리즘
𝑎 𝑏
𝑢
𝑐
K.  The  festival  must  go  on
• 최대 길이가 𝑙일 때 𝑀개의 간선을 선택할 수 있는가?
• 요약:  탐욕 알고리즘
𝑎 𝑏
𝑢
𝑐
K.  The  festival  must  go  on
• 최대 길이가 𝑙일 때 𝑀개의 간선을 선택할 수 있는가?
• 요약:  탐욕 알고리즘
• 이런 식으로 재귀적으로문제를 해결할수 있습니다.
K.  The  festival  must  go  on
• 최대 길이가 𝑙일 때 𝑀개의 간선을 선택할 수 있는가?
• 요약:  탐욕 알고리즘
• 이런 식으로 재귀적으로문제를 해결할수 있습니다.
• 이게 왜 되는지 적고 싶은데 시간이 없네요.
K.  The  festival  must  go  on
• 최대 길이가 𝑙일 때 𝑀개의 간선을 선택할 수 있는가?
• 요약:  탐욕 알고리즘
• 이런 식으로 재귀적으로문제를 해결할수 있습니다.
• 이게 왜 되는지 적고 싶은데 시간이 없네요.
• 시간복잡도:  𝑂 log길이 ×𝑁 log 𝑁
• 이분탐색x  정점 수 x  정렬
K.  The  festival  must  go  on
• 최대 길이가 𝑙일 때 𝑀개의 간선을 선택할 수 있는가?
• 요약:  탐욕 알고리즘
• 이런 식으로 재귀적으로문제를 해결할수 있습니다.
• 이게 왜 되는지 적고 싶은데 시간이 없네요.
• 시간복잡도:  𝑂 log길이 ×𝑁 log 𝑁
• 이분탐색x  정점 수 x  정렬
• 처음 만든 풀이:  DP를 활용한 𝑂 𝑁2
log길이
• 이분탐색의아이디어는같고,  냅색 같은 걸 합니다.
• 역시 설명하고 싶으나시간이 없습니다.  
L.  수열의 장인
• 답은 0  이상
• 𝑛 ≥ 2이기 때문
L.  수열의 장인
• 답은 0  이상
• 𝑛 ≥ 2이기 때문
• 곱의 최댓값이 아니라 합의 최댓값이었다면?
• 𝑇 𝑖 = max 𝑇 𝑖 − 1 ,0 + 𝑎M
• (답)  =  max 𝑇 𝑖
L.  수열의 장인
• 답은 0  이상
• 𝑛 ≥ 2이기 때문
• 곱의 최댓값이 아니라 합의 최댓값이었다면?
• 𝑇 𝑖 = max 𝑇 𝑖 − 1 ,0 + 𝑎M
• (답)  =  max 𝑇 𝑖
• 곱의 최댓값도 저렇게?
• 𝑇 𝑖 = max 𝑇 𝑖 − 1 ,1 ×𝑎M
• (답)  =  max 𝑇 𝑖
L.  수열의 장인
• 답은 0  이상
• 𝑛 ≥ 2이기 때문
• 곱의 최댓값이 아니라 합의 최댓값이었다면?
• 𝑇 𝑖 = max 𝑇 𝑖 − 1 ,0 + 𝑎M
• (답)  =  max 𝑇 𝑖
• 곱의 최댓값도 저렇게?
• 𝑇 𝑖 = max 𝑇 𝑖 − 1 ,1 ×𝑎M
• (답)  =  max 𝑇 𝑖
• 문제점:   −𝟐 𝟐
× −2  𝟐× −2
L.  수열의 장인
• 답은 0  이상
• 𝑛 ≥ 2이기 때문
• 곱의 최댓값이 아니라 합의 최댓값이었다면?
• 𝑇 𝑖 = max 𝑇 𝑖 − 1 ,0 + 𝑎M
• (답)  =  max 𝑇 𝑖
• 곱의 최댓값도 저렇게?
• 𝑇 𝑖 = max 𝑇 𝑖 − 1 ,1 ×𝑎M
• (답)  =  max 𝑇 𝑖
• 문제점:   −𝟐 𝟐
× −2  𝟐× −2
• 음수와 음수를 곱하면 더 큰 양수가 만들어질 수 있다!
L.  수열의 장인
• 그러니  최소, 최대를  저장하자!
L.  수열의 장인
• 그러니  최소, 최대를  저장하자!
• 최소 – 음수 중 절댓값이가장 큰 것,  최대 – 양수 중 최댓값이가장 큰 것 ..일 가능성
있음

More Related Content

What's hot

色々なダイクストラ高速化
色々なダイクストラ高速化色々なダイクストラ高速化
色々なダイクストラ高速化yosupo
 
AtCoder Beginner Contest 007 解説
AtCoder Beginner Contest 007 解説AtCoder Beginner Contest 007 解説
AtCoder Beginner Contest 007 解説AtCoder Inc.
 
2SAT(充足可能性問題)の解き方
2SAT(充足可能性問題)の解き方2SAT(充足可能性問題)の解き方
2SAT(充足可能性問題)の解き方Tsuneo Yoshioka
 
強くなるためのプログラミング -プログラミングに関する様々なコンテストとそのはじめ方-#pyconjp
強くなるためのプログラミング -プログラミングに関する様々なコンテストとそのはじめ方-#pyconjp強くなるためのプログラミング -プログラミングに関する様々なコンテストとそのはじめ方-#pyconjp
強くなるためのプログラミング -プログラミングに関する様々なコンテストとそのはじめ方-#pyconjpcocodrips
 
AtCoder Beginner Contest 021 解説
AtCoder Beginner Contest 021 解説AtCoder Beginner Contest 021 解説
AtCoder Beginner Contest 021 解説AtCoder Inc.
 
AtCoder Beginner Contest 010 解説
AtCoder Beginner Contest 010 解説AtCoder Beginner Contest 010 解説
AtCoder Beginner Contest 010 解説AtCoder Inc.
 
AtCoder Beginner Contest 002 解説
AtCoder Beginner Contest 002 解説AtCoder Beginner Contest 002 解説
AtCoder Beginner Contest 002 解説AtCoder Inc.
 
AtCoder Beginner Contest 026 解説
AtCoder Beginner Contest 026 解説AtCoder Beginner Contest 026 解説
AtCoder Beginner Contest 026 解説AtCoder Inc.
 
AtCoder Beginner Contest 020 解説
AtCoder Beginner Contest 020 解説AtCoder Beginner Contest 020 解説
AtCoder Beginner Contest 020 解説AtCoder Inc.
 
AtCoder Regular Contest 028 解説
AtCoder Regular Contest 028 解説AtCoder Regular Contest 028 解説
AtCoder Regular Contest 028 解説AtCoder Inc.
 
動的計画法入門(An introduction to Dynamic Programming)
動的計画法入門(An introduction to Dynamic Programming)動的計画法入門(An introduction to Dynamic Programming)
動的計画法入門(An introduction to Dynamic Programming)kakira9618
 
競技プログラミングでの線型方程式系
競技プログラミングでの線型方程式系競技プログラミングでの線型方程式系
競技プログラミングでの線型方程式系tmaehara
 
AtCoder Regular Contest 021 解説
AtCoder Regular Contest 021 解説AtCoder Regular Contest 021 解説
AtCoder Regular Contest 021 解説AtCoder Inc.
 
AtCoder Regular Contest 035 解説
AtCoder Regular Contest 035 解説AtCoder Regular Contest 035 解説
AtCoder Regular Contest 035 解説AtCoder Inc.
 
AtCoder Beginner Contest 029 解説
AtCoder Beginner Contest 029 解説AtCoder Beginner Contest 029 解説
AtCoder Beginner Contest 029 解説AtCoder Inc.
 
AtCoder Beginner Contest 005 解説
AtCoder Beginner Contest 005 解説AtCoder Beginner Contest 005 解説
AtCoder Beginner Contest 005 解説AtCoder Inc.
 
様々な全域木問題
様々な全域木問題様々な全域木問題
様々な全域木問題tmaehara
 
Disco Presents ディスカバリーチャンネルプログラミングコンテスト2016 本選 解説
Disco Presents ディスカバリーチャンネルプログラミングコンテスト2016 本選 解説Disco Presents ディスカバリーチャンネルプログラミングコンテスト2016 本選 解説
Disco Presents ディスカバリーチャンネルプログラミングコンテスト2016 本選 解説AtCoder Inc.
 

What's hot (20)

ABC001 解説
ABC001 解説ABC001 解説
ABC001 解説
 
色々なダイクストラ高速化
色々なダイクストラ高速化色々なダイクストラ高速化
色々なダイクストラ高速化
 
AtCoder Beginner Contest 007 解説
AtCoder Beginner Contest 007 解説AtCoder Beginner Contest 007 解説
AtCoder Beginner Contest 007 解説
 
2SAT(充足可能性問題)の解き方
2SAT(充足可能性問題)の解き方2SAT(充足可能性問題)の解き方
2SAT(充足可能性問題)の解き方
 
強くなるためのプログラミング -プログラミングに関する様々なコンテストとそのはじめ方-#pyconjp
強くなるためのプログラミング -プログラミングに関する様々なコンテストとそのはじめ方-#pyconjp強くなるためのプログラミング -プログラミングに関する様々なコンテストとそのはじめ方-#pyconjp
強くなるためのプログラミング -プログラミングに関する様々なコンテストとそのはじめ方-#pyconjp
 
AtCoder Beginner Contest 021 解説
AtCoder Beginner Contest 021 解説AtCoder Beginner Contest 021 解説
AtCoder Beginner Contest 021 解説
 
AtCoder Beginner Contest 010 解説
AtCoder Beginner Contest 010 解説AtCoder Beginner Contest 010 解説
AtCoder Beginner Contest 010 解説
 
AtCoder Beginner Contest 002 解説
AtCoder Beginner Contest 002 解説AtCoder Beginner Contest 002 解説
AtCoder Beginner Contest 002 解説
 
AtCoder Beginner Contest 026 解説
AtCoder Beginner Contest 026 解説AtCoder Beginner Contest 026 解説
AtCoder Beginner Contest 026 解説
 
AtCoder Beginner Contest 020 解説
AtCoder Beginner Contest 020 解説AtCoder Beginner Contest 020 解説
AtCoder Beginner Contest 020 解説
 
AtCoder Regular Contest 028 解説
AtCoder Regular Contest 028 解説AtCoder Regular Contest 028 解説
AtCoder Regular Contest 028 解説
 
動的計画法入門(An introduction to Dynamic Programming)
動的計画法入門(An introduction to Dynamic Programming)動的計画法入門(An introduction to Dynamic Programming)
動的計画法入門(An introduction to Dynamic Programming)
 
競技プログラミングでの線型方程式系
競技プログラミングでの線型方程式系競技プログラミングでの線型方程式系
競技プログラミングでの線型方程式系
 
AtCoder Regular Contest 021 解説
AtCoder Regular Contest 021 解説AtCoder Regular Contest 021 解説
AtCoder Regular Contest 021 解説
 
AtCoder Regular Contest 035 解説
AtCoder Regular Contest 035 解説AtCoder Regular Contest 035 解説
AtCoder Regular Contest 035 解説
 
AtCoder Beginner Contest 029 解説
AtCoder Beginner Contest 029 解説AtCoder Beginner Contest 029 解説
AtCoder Beginner Contest 029 解説
 
abc032
abc032abc032
abc032
 
AtCoder Beginner Contest 005 解説
AtCoder Beginner Contest 005 解説AtCoder Beginner Contest 005 解説
AtCoder Beginner Contest 005 解説
 
様々な全域木問題
様々な全域木問題様々な全域木問題
様々な全域木問題
 
Disco Presents ディスカバリーチャンネルプログラミングコンテスト2016 本選 解説
Disco Presents ディスカバリーチャンネルプログラミングコンテスト2016 本選 解説Disco Presents ディスカバリーチャンネルプログラミングコンテスト2016 本選 解説
Disco Presents ディスカバリーチャンネルプログラミングコンテスト2016 本選 解説
 

Viewers also liked

두 번째 startlink.live: 김재홍 (xhark) - 알고리즘 문제 출제 전략
두 번째 startlink.live: 김재홍 (xhark) - 알고리즘 문제 출제 전략두 번째 startlink.live: 김재홍 (xhark) - 알고리즘 문제 출제 전략
두 번째 startlink.live: 김재홍 (xhark) - 알고리즘 문제 출제 전략Startlink
 
두 번째 startlink.live: 박성원 (ntopia) - PS가 이렇게 해롭습니다. 여러분!
두 번째 startlink.live: 박성원 (ntopia) - PS가 이렇게 해롭습니다. 여러분!두 번째 startlink.live: 박성원 (ntopia) - PS가 이렇게 해롭습니다. 여러분!
두 번째 startlink.live: 박성원 (ntopia) - PS가 이렇게 해롭습니다. 여러분!Startlink
 
두 번째 startlink.live: 최백준 (baekjoon) - 알고리즘 공부하다 창업...
두 번째 startlink.live: 최백준 (baekjoon) - 알고리즘 공부하다 창업...두 번째 startlink.live: 최백준 (baekjoon) - 알고리즘 공부하다 창업...
두 번째 startlink.live: 최백준 (baekjoon) - 알고리즘 공부하다 창업...Startlink
 
두 번째 startlink.live: 오현석 (algoshipda) - 초심자를 위한 알고리즘 공부 전략
두 번째 startlink.live: 오현석 (algoshipda) - 초심자를 위한 알고리즘 공부 전략두 번째 startlink.live: 오현석 (algoshipda) - 초심자를 위한 알고리즘 공부 전략
두 번째 startlink.live: 오현석 (algoshipda) - 초심자를 위한 알고리즘 공부 전략Startlink
 
온라인 커뮤니티 상의 게시글에 대해
 Louvain method와 클러스터링 기법을 적용한
 내부 커뮤니티 성향 탐지 기법

온라인 커뮤니티 상의 게시글에 대해
 Louvain method와 클러스터링 기법을 적용한
 내부 커뮤니티 성향 탐지 기법
온라인 커뮤니티 상의 게시글에 대해
 Louvain method와 클러스터링 기법을 적용한
 내부 커뮤니티 성향 탐지 기법

온라인 커뮤니티 상의 게시글에 대해
 Louvain method와 클러스터링 기법을 적용한
 내부 커뮤니티 성향 탐지 기법
Sun-young Kim
 
두 번째 startlink.live: 장홍준 (hongjun7) - Teamwork in Programming Contests
두 번째 startlink.live: 장홍준 (hongjun7) - Teamwork in Programming Contests두 번째 startlink.live: 장홍준 (hongjun7) - Teamwork in Programming Contests
두 번째 startlink.live: 장홍준 (hongjun7) - Teamwork in Programming ContestsStartlink
 
샌드박스
샌드박스샌드박스
샌드박스Baekjoon Choi
 
Tobi 스프링 2장 php version
Tobi 스프링 2장   php versionTobi 스프링 2장   php version
Tobi 스프링 2장 php versionukjinkwoun
 
Baekjoon Online Judge 1451번 풀이
Baekjoon Online Judge 1451번 풀이Baekjoon Online Judge 1451번 풀이
Baekjoon Online Judge 1451번 풀이Baekjoon Choi
 
Baekjoon Online Judge 10986번 풀이
Baekjoon Online Judge 10986번 풀이Baekjoon Online Judge 10986번 풀이
Baekjoon Online Judge 10986번 풀이Baekjoon Choi
 
Baekjoon Online Judge 1648번 풀이
Baekjoon Online Judge 1648번 풀이Baekjoon Online Judge 1648번 풀이
Baekjoon Online Judge 1648번 풀이Baekjoon Choi
 
Baekjoon Online Judge 1201번 풀이
Baekjoon Online Judge 1201번 풀이Baekjoon Online Judge 1201번 풀이
Baekjoon Online Judge 1201번 풀이Baekjoon Choi
 
Baekjoon Online Judge 3015번 풀이
Baekjoon Online Judge 3015번 풀이Baekjoon Online Judge 3015번 풀이
Baekjoon Online Judge 3015번 풀이Baekjoon Choi
 
Baekjoon Online Judge 2873번 풀이
Baekjoon Online Judge 2873번 풀이Baekjoon Online Judge 2873번 풀이
Baekjoon Online Judge 2873번 풀이Baekjoon Choi
 
스타트링크 (Startlink) 소개 2016
스타트링크 (Startlink) 소개 2016스타트링크 (Startlink) 소개 2016
스타트링크 (Startlink) 소개 2016Startlink
 
Baekjoon Online Judge 1019번 풀이
Baekjoon Online Judge 1019번 풀이Baekjoon Online Judge 1019번 풀이
Baekjoon Online Judge 1019번 풀이Baekjoon Choi
 
Coder’s High 2014 풀이
Coder’s High 2014 풀이Coder’s High 2014 풀이
Coder’s High 2014 풀이Baekjoon Choi
 
2014 ACM-ICPC Daejeon 인터넷 예선 해설
2014 ACM-ICPC Daejeon 인터넷 예선 해설2014 ACM-ICPC Daejeon 인터넷 예선 해설
2014 ACM-ICPC Daejeon 인터넷 예선 해설Baekjoon Choi
 
[Td 2015]구름 위로 올려 어느 곳에서든 연결되는 서비스 azure 앱 서비스(이종인)
[Td 2015]구름 위로 올려 어느 곳에서든 연결되는 서비스 azure 앱 서비스(이종인)[Td 2015]구름 위로 올려 어느 곳에서든 연결되는 서비스 azure 앱 서비스(이종인)
[Td 2015]구름 위로 올려 어느 곳에서든 연결되는 서비스 azure 앱 서비스(이종인)Sang Don Kim
 

Viewers also liked (20)

두 번째 startlink.live: 김재홍 (xhark) - 알고리즘 문제 출제 전략
두 번째 startlink.live: 김재홍 (xhark) - 알고리즘 문제 출제 전략두 번째 startlink.live: 김재홍 (xhark) - 알고리즘 문제 출제 전략
두 번째 startlink.live: 김재홍 (xhark) - 알고리즘 문제 출제 전략
 
두 번째 startlink.live: 박성원 (ntopia) - PS가 이렇게 해롭습니다. 여러분!
두 번째 startlink.live: 박성원 (ntopia) - PS가 이렇게 해롭습니다. 여러분!두 번째 startlink.live: 박성원 (ntopia) - PS가 이렇게 해롭습니다. 여러분!
두 번째 startlink.live: 박성원 (ntopia) - PS가 이렇게 해롭습니다. 여러분!
 
두 번째 startlink.live: 최백준 (baekjoon) - 알고리즘 공부하다 창업...
두 번째 startlink.live: 최백준 (baekjoon) - 알고리즘 공부하다 창업...두 번째 startlink.live: 최백준 (baekjoon) - 알고리즘 공부하다 창업...
두 번째 startlink.live: 최백준 (baekjoon) - 알고리즘 공부하다 창업...
 
두 번째 startlink.live: 오현석 (algoshipda) - 초심자를 위한 알고리즘 공부 전략
두 번째 startlink.live: 오현석 (algoshipda) - 초심자를 위한 알고리즘 공부 전략두 번째 startlink.live: 오현석 (algoshipda) - 초심자를 위한 알고리즘 공부 전략
두 번째 startlink.live: 오현석 (algoshipda) - 초심자를 위한 알고리즘 공부 전략
 
온라인 커뮤니티 상의 게시글에 대해
 Louvain method와 클러스터링 기법을 적용한
 내부 커뮤니티 성향 탐지 기법

온라인 커뮤니티 상의 게시글에 대해
 Louvain method와 클러스터링 기법을 적용한
 내부 커뮤니티 성향 탐지 기법
온라인 커뮤니티 상의 게시글에 대해
 Louvain method와 클러스터링 기법을 적용한
 내부 커뮤니티 성향 탐지 기법

온라인 커뮤니티 상의 게시글에 대해
 Louvain method와 클러스터링 기법을 적용한
 내부 커뮤니티 성향 탐지 기법

 
두 번째 startlink.live: 장홍준 (hongjun7) - Teamwork in Programming Contests
두 번째 startlink.live: 장홍준 (hongjun7) - Teamwork in Programming Contests두 번째 startlink.live: 장홍준 (hongjun7) - Teamwork in Programming Contests
두 번째 startlink.live: 장홍준 (hongjun7) - Teamwork in Programming Contests
 
Cdr with php
Cdr with phpCdr with php
Cdr with php
 
샌드박스
샌드박스샌드박스
샌드박스
 
Tobi 스프링 2장 php version
Tobi 스프링 2장   php versionTobi 스프링 2장   php version
Tobi 스프링 2장 php version
 
Baekjoon Online Judge 1451번 풀이
Baekjoon Online Judge 1451번 풀이Baekjoon Online Judge 1451번 풀이
Baekjoon Online Judge 1451번 풀이
 
Baekjoon Online Judge 10986번 풀이
Baekjoon Online Judge 10986번 풀이Baekjoon Online Judge 10986번 풀이
Baekjoon Online Judge 10986번 풀이
 
Baekjoon Online Judge 1648번 풀이
Baekjoon Online Judge 1648번 풀이Baekjoon Online Judge 1648번 풀이
Baekjoon Online Judge 1648번 풀이
 
Baekjoon Online Judge 1201번 풀이
Baekjoon Online Judge 1201번 풀이Baekjoon Online Judge 1201번 풀이
Baekjoon Online Judge 1201번 풀이
 
Baekjoon Online Judge 3015번 풀이
Baekjoon Online Judge 3015번 풀이Baekjoon Online Judge 3015번 풀이
Baekjoon Online Judge 3015번 풀이
 
Baekjoon Online Judge 2873번 풀이
Baekjoon Online Judge 2873번 풀이Baekjoon Online Judge 2873번 풀이
Baekjoon Online Judge 2873번 풀이
 
스타트링크 (Startlink) 소개 2016
스타트링크 (Startlink) 소개 2016스타트링크 (Startlink) 소개 2016
스타트링크 (Startlink) 소개 2016
 
Baekjoon Online Judge 1019번 풀이
Baekjoon Online Judge 1019번 풀이Baekjoon Online Judge 1019번 풀이
Baekjoon Online Judge 1019번 풀이
 
Coder’s High 2014 풀이
Coder’s High 2014 풀이Coder’s High 2014 풀이
Coder’s High 2014 풀이
 
2014 ACM-ICPC Daejeon 인터넷 예선 해설
2014 ACM-ICPC Daejeon 인터넷 예선 해설2014 ACM-ICPC Daejeon 인터넷 예선 해설
2014 ACM-ICPC Daejeon 인터넷 예선 해설
 
[Td 2015]구름 위로 올려 어느 곳에서든 연결되는 서비스 azure 앱 서비스(이종인)
[Td 2015]구름 위로 올려 어느 곳에서든 연결되는 서비스 azure 앱 서비스(이종인)[Td 2015]구름 위로 올려 어느 곳에서든 연결되는 서비스 azure 앱 서비스(이종인)
[Td 2015]구름 위로 올려 어느 곳에서든 연결되는 서비스 azure 앱 서비스(이종인)
 

제 5회 전국 대학생 프로그래밍 동아리 연합 여름 대회 해설 슬라이드

  • 1. 제5회 전국 대학생 프로그래밍 동아리 연합 여름 대회 풀이 풀이입니다.
  • 2. 통계 • A  -­  Dr.  L's  exam   • 출제자:  정현환   • First  solve:  DPneuDP  @서울대  ,  3분   • 정답률:  68/87,  78.161%   • B  – 뱀 • 출제자:  이태현   • First  solve:  Mola Mola @서울대 ,  112분 • 정답률:  12/141,  8.511% • C  – 사전 조사 • 출제자:  박수찬   • First  solve:  DPneuDP @서울대 ,  226분 • 정답률:  3/35  8.571%
  • 3. 통계 • D  – Bulb • 출제자:  윤지학   • First  solve:  Mola Mola @서울대 ,  231분 • 정답률:  3/8,  37.500% • E  -­ How  many  binary  sequences? • 출제자:  정현환   • First  solve:  gcc @서울대 ,  94분 • 정답률:  11/41,  26.829% • F  -­ Speak  your  mind! • 출제자:  조승현  (bryan)   • First  solve:  NonsanWarrior @서울대 ,  31분 • 정답률:  22/103,  21.359%
  • 4. • G  – 내가 어디를 거쳐갔더라?   • 출제자:  조승현  (ainta)   • 정답률:  0/0,  0.000% • H  -­ 프로도의 선물 포장 • 출제자:  김선영   • First  solve:  LifeIsNotThatEasy @서울대 ,  24분 • 정답률:  36/107, 33.645% • I  – International  Meeting • 출제자:  김선영   • First  solve:  Jungrae10002gija   @한양대 ,  7분 • 정답률:  55/255,  21.569% 통계
  • 5. • J  – 분할   • 출제자:  김경근   • First  solve:  gcc @서울대 ,  140분 • 정답률:  7/61,  11.475% • K  -­ The  festival  must  go  on   • 출제자:  조승현  (ainta)   • First  solve:  Mola Mola @서울대 ,  242분 • 정답률:  2/8,  25.000% • L  -­ 수열의  장인   • 출제자:  박수찬   • First  solve:  Accepted  @고려대 ,  23분 • 정답률:  25/317,  7.886% 통계
  • 6. A.  Dr.  L’s  exam 𝒋 1 2 3 4 5 6 7 8 9 10 𝒋 − 𝟏  𝐦𝐨𝐝  𝟓 1 2 3 4 5 1 2 3 4 5
  • 7. A.  Dr.  L’s  exam • 제출한 답안이 “1  2  3  4  5  1  2  3  4  5”이면 재시험 대상 𝒋 1 2 3 4 5 6 7 8 9 10 𝒋 − 𝟏  𝐦𝐨𝐝  𝟓 1 2 3 4 5 1 2 3 4 5
  • 8. A.  Dr.  L’s  exam • 제출한 답안이 “1  2  3  4  5  1  2  3  4  5”이면 재시험 대상 • 한 줄을 통째로 받아서 문자열 비교하면 편합니다 𝒋 1 2 3 4 5 6 7 8 9 10 𝒋 − 𝟏  𝐦𝐨𝐝  𝟓 1 2 3 4 5 1 2 3 4 5
  • 9. B.  뱀 • 뱀의 경로는 이어지는 선분들이라 생각 가능
  • 10. B.  뱀 • 뱀의 경로는 이어지는 선분들이라 생각 가능 • 수평 혹은 수직으로 이루어진 선분들 사이의 교차 문제
  • 11. B.  뱀 • 뱀의 경로는 이어지는 선분들이라 생각 가능 • 수평 혹은 수직으로 이루어진 선분들 사이의 교차 문제 • 어느 교점까지 몇 초가 걸릴 지 계산하자
  • 12. B.  뱀 • 뱀의 경로는 이어지는 선분들이라 생각 가능 • 수평 혹은 수직으로 이루어진 선분들 사이의 교차 문제 • 어느 교점까지 몇 초가 걸릴 지 계산하자 • 그 선분 전까지의 ∑ 𝑡 𝑖 +  교점을 구하고 선분의 시작점부터 거리
  • 13. B.  뱀 • 뱀의 경로는 이어지는 선분들이라 생각 가능 • 수평 혹은 수직으로 이루어진 선분들 사이의 교차 문제 • 어느 교점까지 몇 초가 걸릴 지 계산하자 • 그 선분 전까지의 ∑ 𝑡 𝑖 +  교점을 구하고 선분의 시작점부터 거리 • 𝑁 ≤ 1,000이므로 𝑂 𝑁2 에 해결 가능
  • 14. B.  뱀 • 뱀의 경로는 이어지는 선분들이라 생각 가능 • 수평 혹은 수직으로 이루어진 선분들 사이의 교차 문제 • 어느 교점까지 몇 초가 걸릴 지 계산하자 • 그 선분 전까지의 ∑ 𝑡 𝑖 +  교점을 구하고 선분의 시작점부터 거리 • 𝑁 ≤ 1,000이므로 𝑂 𝑁2 에 해결 가능 • 𝐿 ≤ 104 → 지나온 격자들을 다 저장하면 Memory  Limit  Exceeded
  • 15. C.  사전 조사 • 𝐴는 언제 찾을 수 있을까?
  • 16. C.  사전 조사 • 𝐴는 언제 찾을 수 있을까? ⋯ , 𝐴, ⋯
  • 17. C.  사전 조사 • 𝐴는 언제 찾을 수 있을까? ⋯ , 𝐴, ⋯ 𝐴를 읽기 전에 얼마인지 알 수 없다
  • 18. C.  사전 조사 • 𝐴는 언제 찾을 수 있을까? ⋯ , 𝐴, ⋯ 𝐴를 읽기 전에 얼마인지 알 수 없다 , 𝐴 − 1 , ⋯ 𝐴 − 1이 나와야 할 자리에 안 나왔다면,  알 수 있다
  • 19. C.  사전 조사 • 𝐴는 언제 찾을 수 있을까? ⋯ , 𝐴, ⋯ 𝐴를 읽기 전에 얼마인지 알 수 없다 , 𝐴 − 1 , ⋯ 𝐴 − 1이 나와야 할 자리에 안 나왔다면,  알 수 있다 사전에서 𝐴가 나타난 이후 사전에서 𝐴 − 1이 있어야 할 곳을 지난 이후
  • 20. C.  사전 조사 • 𝐵는 언제 찾을 수 있을까?
  • 21. C.  사전 조사 • 𝐵는 언제 찾을 수 있을까? ⋯ , 𝐵, ⋯ 𝐵를 읽기 전에 얼마인지 알 수 없다 , 𝐵 + 1 , ⋯ 𝐵 + 1이 나와야 할 자리에 안 나왔다면,  알 수 있다 사전에서 𝐵가 나타난 이후 사전에서 𝐵 + 1이 있어야 할 곳을 지난 이후
  • 22. C.  사전 조사 • 𝐵는 언제 찾을 수 있을까? ⋯ , 𝐵, ⋯ 𝐵를 읽기 전에 얼마인지 알 수 없다 , 𝐵 + 1 , ⋯ 𝐵 + 1이 나와야 할 자리에 안 나왔다면,  알 수 있다 사전에서 𝐵가 나타난 이후 사전에서 𝐵 + 1이 있어야 할 곳을 지난 이후 • 𝐴는 언제 찾을 수 있을까? ⋯ , 𝐴, ⋯ 𝐴를 읽기 전에 얼마인지 알 수 없다 , 𝐴 − 1 , ⋯ 𝐴 − 1이 나와야 할 자리에 안 나왔다면,  알 수 있다 사전에서 𝐴가 나타난 이후 사전에서 𝐴 − 1이 있어야 할 곳을 지난 이후
  • 23. C.  사전 조사 • 𝐵는 언제 찾을 수 있을까? ⋯ , 𝐵, ⋯ 𝐵를 읽기 전에 얼마인지 알 수 없다 , 𝐵 + 1 , ⋯ 𝐵 + 1이 나와야 할 자리에 안 나왔다면,  알 수 있다 사전에서 𝑩가 나타난 이후 사전에서 𝑩 + 𝟏이 있어야 할 곳을 지난 이후 • 𝐴는 언제 찾을 수 있을까? ⋯ , 𝐴, ⋯ 𝐴를 읽기 전에 얼마인지 알 수 없다 , 𝐴 − 1 , ⋯ 𝐴 − 1이 나와야 할 자리에 안 나왔다면,  알 수 있다 사전에서 𝑨가 나타난 이후 사전에서 𝑨 − 𝟏이 있어야 할 곳을 지난 이후
  • 24. C.  사전 조사 • 결론:  사전에서 𝐴, 𝐴 − 1, 𝐵, 𝐵 + 1이 있어야 할 위치를 모두 지난 순 간 수찬이는 𝐴, 𝐵를 알아낼 수 있다.
  • 25. C.  사전 조사 • 결론:  사전에서 𝐴, 𝐴 − 1, 𝐵, 𝐵 + 1이 있어야 할 위치를 모두 지난 순 간 수찬이는 𝐴, 𝐵를 알아낼 수 있다. • 바뀐 문제:  𝐴 이상 𝐵 이하의 자연수 중 사전순으로 𝑋보다 작거나 같 은 것의 개수는?
  • 26. C.  사전 조사 • 결론:  사전에서 𝐴, 𝐴 − 1, 𝐵, 𝐵 + 1이 있어야 할 위치를 모두 지난 순 간 수찬이는 𝐴, 𝐵를 알아낼 수 있다. • 바뀐 문제:  𝐴 이상 𝐵 이하의 자연수 중 사전순으로 𝑋보다 작거나 같 은 것의 개수는? • 더 간단히:  1 이상 𝑛 이하의 자연수 중 사전순으로 𝑋보다 작거나 같 은 것의 개수는?
  • 27. C.  사전 조사 • 더 간단히:  1  이상 𝑛 이하의 자연수 중 사전순으로 𝑋보다 작거나 같 은 것의 개수는? • 설명하기 어려우니 예를 들어봅시다.
  • 28. C.  사전 조사 • 더 간단히:  1  이상 𝑛 이하의 자연수 중 사전순으로 𝑋보다 작거나 같 은 것의 개수는? • 설명하기 어려우니 예를 들어봅시다. • 𝑋 = 5167이라면?
  • 29. C.  사전 조사 • 더 간단히:  1  이상 𝑛 이하의 자연수 중 사전순으로 𝑋보다 작거나 같 은 것의 개수는? • 설명하기 어려우니 예를 들어봅시다. • 𝑋 = 5167이라면? • 1,  2,  3,  4로 시작하는 모든 수: 𝑋보다 사전에서 앞에 있다.
  • 30. C.  사전 조사 • 더 간단히:  1  이상 𝑛 이하의 자연수 중 사전순으로 𝑋보다 작거나 같 은 것의 개수는? • 설명하기 어려우니 예를 들어봅시다. • 𝑋 = 5167이라면? • 1,  2,  3,  4로 시작하는 모든 수: 𝑋보다 사전에서 앞에 있다. • 50으로 시작하는 모든 수:   𝑋보다 사전에서 앞에 있다.
  • 31. C.  사전 조사 • 더 간단히:  1  이상 𝑛 이하의 자연수 중 사전순으로 𝑋보다 작거나 같 은 것의 개수는? • 설명하기 어려우니 예를 들어봅시다. • 𝑋 = 5167이라면? • 1,  2,  3,  4로 시작하는 모든 수: 𝑋보다 사전에서 앞에 있다. • 50으로 시작하는 모든 수:   𝑋보다 사전에서 앞에 있다. • 510,  511,  …,  515로 시작하는 모든 수:   𝑋보다 사전에서 앞에 있다.
  • 32. C.  사전 조사 • 더 간단히:  1  이상 𝑛 이하의 자연수 중 사전순으로 𝑋보다 작거나 같 은 것의 개수는? • 설명하기 어려우니 예를 들어봅시다. • 𝑋 = 5167이라면? • 1,  2,  3,  4로 시작하는 모든 수: 𝑋보다 사전에서 앞에 있다. • 50으로 시작하는 모든 수:   𝑋보다 사전에서 앞에 있다. • 510,  511,  …,  515로 시작하는 모든 수:   𝑋보다 사전에서 앞에 있다. • 5160,  5161,  …,  5166로 시작하는 모든 수:   𝑋보다 사전에서 앞에 있다.
  • 33. C.  사전 조사 • 더 간단히:  1  이상 𝑛 이하의 자연수 중 사전순으로 𝑋보다 작거나 같 은 것의 개수는? • 설명하기 어려우니 예를 들어봅시다. • 𝑋 = 5167이라면? • 1,  2,  3,  4로 시작하는 모든 수: 𝑋보다 사전에서 앞에 있다. • 50으로 시작하는 모든 수:   𝑋보다 사전에서 앞에 있다. • 510,  511,  …,  515로 시작하는 모든 수:   𝑋보다 사전에서 앞에 있다. • 5160,  5161,  …,  5166로 시작하는 모든 수:   𝑋보다 사전에서 앞에 있다. • 5167:  𝑋이다.
  • 34. C.  사전 조사 • 더 간단히:  1  이상 𝑛 이하의 자연수 중 사전순으로 𝑋보다 작거나 같 은 것의 개수는? • 이런 식으로 접두사가 𝑝인 자연수들 중 1  이상 𝑛 이하인 것의 개수를 세어 주면 됩니다.
  • 35. C.  사전 조사 • 더 간단히:  1  이상 𝑛 이하의 자연수 중 사전순으로 𝑋보다 작거나 같 은 것의 개수는? • 이런 식으로 접두사가 𝑝인 자연수들 중 1  이상 𝑛 이하인 것의 개수를 세어 주면 됩니다. • 한  테스트  케이스당  𝑂 logEF 2 𝑛 에 해결 가능합니다.
  • 36. D.  Bulb • 전선의 특징 관찰
  • 37. D.  Bulb • 격자선마다 정점을 만들고 간선을 이어준다 • 색을 칠해준다
  • 38. D.  Bulb q l q * O O q q * q l q
  • 42. E.  How  many  binary  sequences? • 참고:  원래 문제는 굉장히 어려웠습니다.
  • 43. E.  How  many  binary  sequences? • 참고:  원래 문제는 굉장히 어려웠습니다. 2 2 1 0 2 1 2𝒁 𝑿 𝒀 1 1 1 1 1 1 0 0 1 1 0/1 0/1 1/0 1/0
  • 44. E.  How  many  binary  sequences? • 참고:  원래 문제는 굉장히 어려웠습니다. • 각 𝑍M마다 𝑋, 𝑌의 후보가 4개 생긴다 2 2 1 0 2 1 2𝒁 𝑿 𝒀 1 1 1 1 1 1 0 0 1 1 0/1 0/1 1/0 1/0
  • 45. E.  How  many  binary  sequences? • 참고:  원래 문제는 굉장히 어려웠습니다. • 각 𝑍M마다 𝑋, 𝑌의 후보가 4개 생긴다 • 사실 2개 2 2 1 0 2 1 2𝒁 𝑿 𝒀 1 1 1 1 1 1 0 0 1 1 0/1 0/1 1/0 1/0
  • 46. E.  How  many  binary  sequences? • 참고:  원래 문제는 굉장히 어려웠습니다. • 각 𝑍M마다 𝑋, 𝑌의 후보가 4개 생긴다 • 사실 2개 • 𝑋, 𝑌는 순서가 바뀌어도상관 없으므로 2 2 1 0 2 1 2𝒁 𝑿 𝒀 1 1 1 1 1 1 0 0 1 1 0/1 0/1 1/0 1/0
  • 47. E.  How  many  binary  sequences? • 참고:  원래 문제는 굉장히 어려웠습니다. • 각 𝑍M마다 𝑋, 𝑌의 후보가 4개 생긴다 • 사실 2개 • 𝑋, 𝑌는 순서가 바뀌어도상관 없으므로 • 그래서 모든 2Q 개의 경우를 순회하며 답을 찾으면 된다. 2 2 1 0 2 1 2𝒁 𝑿 𝒀 1 1 1 1 1 1 0 0 1 1 0/1 0/1 1/0 1/0
  • 48. E.  How  many  binary  sequences? • 참고:  원래 문제는 굉장히 어려웠습니다. • 각 𝑍M마다 𝑋, 𝑌의 후보가 4개 생긴다 • 사실 2개 • 𝑋, 𝑌는 순서가 바뀌어도상관 없으므로 • 그래서 모든 2Q 개의 경우를 순회하며 답을 찾으면 된다. • 유의:  문자열등으로 비교하여 𝑂 2Q 𝐾 로 풀면 제한 시간 초과 2 2 1 0 2 1 2𝒁 𝑿 𝒀 1 1 1 1 1 1 0 0 1 1 0/1 0/1 1/0 1/0
  • 49. F.  Speak  your  mind! • 먼저 입력 범위의 모든 정수에 대해 답을 구합니다
  • 50. F.  Speak  your  mind! • 먼저 입력 범위의 모든 정수에 대해 답을 구합니다 • ±2T 의 경우 답은 𝑘 + 1
  • 51. F.  Speak  your  mind! • 먼저 입력 범위의 모든 정수에 대해 답을 구합니다 • ±2T 의 경우 답은 𝑘 + 1 • 𝑚을 𝑝개의 단어로 표현할 수 있다면 𝑚 ± 2W 의 답은 𝑝 + 𝑙 + 5
  • 52. F.  Speak  your  mind! • 먼저 입력 범위의 모든 정수에 대해 답을 구합니다 • ±2T 의 경우 답은 𝑘 + 1 • 𝑚을 𝑝개의 단어로 표현할 수 있다면 𝑚 ± 2W 의 답은 𝑝 + 𝑙 + 5 • Dijkstra 비슷하게 하면 답을 구할 수 있음.  근데 다들 DP로 풀더라고요..
  • 53. F.  Speak  your  mind! • 먼저 입력 범위의 모든 정수에 대해 답을 구합니다 • ±2T 의 경우 답은 𝑘 + 1 • 𝑚을 𝑝개의 단어로 표현할 수 있다면 𝑚 ± 2W 의 답은 𝑝 + 𝑙 + 5 • Dijkstra 비슷하게 하면 답을 구할 수 있음.  근데 다들 DP로 풀더라고요.. • 0을 표현하는 데 필요한 단어 수는 6입니다.
  • 54. F.  Speak  your  mind! • 먼저 입력 범위의 모든 정수에 대해 답을 구합니다 • ±2T 의 경우 답은 𝑘 + 1 • 𝑚을 𝑝개의 단어로 표현할 수 있다면 𝑚 ± 2W 의 답은 𝑝 + 𝑙 + 5 • Dijkstra 비슷하게 하면 답을 구할 수 있음.  근데 다들 DP로 풀더라고요.. • 0을 표현하는 데 필요한 단어 수는 6입니다. • 입력받은 숫자마다 그에 대한 답을 출력합니다.
  • 55. F.  Speak  your  mind! • 먼저 입력 범위의 모든 정수에 대해 답을 구합니다 • ±2T 의 경우 답은 𝑘 + 1 • 𝑚을 𝑝개의 단어로 표현할 수 있다면 𝑚 ± 2W 의 답은 𝑝 + 𝑙 + 5 • Dijkstra 비슷하게 하면 답을 구할 수 있음.  근데 다들 DP로 풀더라고요.. • 0을 표현하는 데 필요한 단어 수는 6입니다. • 입력받은 숫자마다 그에 대한 답을 출력합니다. • Shakespeare  Programming  Language는 좋은 프로그래밍 언어입 니다.
  • 56. G.  내가 어디를 거쳐갔더라? • DFS traversal을 통해 간선을 tree  edge와 back  edge로 구분 (DFS   tree 생성)
  • 57. G.  내가 어디를 거쳐갔더라? • DFS traversal을 통해 간선을 tree  edge와 back  edge로 구분 (DFS   tree 생성) • 각 노드를 root로 하는 subtree를 구간으로 표현 가능
  • 58. G.  내가 어디를 거쳐갔더라? • DFS traversal을 통해 간선을 tree  edge와 back  edge로 구분 (DFS   tree 생성) • 각 노드를 root로 하는 subtree를 구간으로 표현 가능 • 이를 통해 승현이네 집 u와 민수네 집 v가 주어졌을 때,   u와 v가 DFS tree에서 서로 조상-­자손 관계인지 아닌지 판단 가능
  • 59. 1 2 3 4 7 8 9 10 11 5 6
  • 60. 2의 subtree에도,  5의 subtree 에도 포함되지 않는 노드는 모 두 지날 수 있다.1 2 3 4 7 8 9 10 11 5 6
  • 61. 1 2 3 4 7 8 9 10 11 5 6 2의 subtree에 있는 노드 중에 서,  3의 경우 2의 조상으로 가 는 back edge가 있으므로 지날 수 있는 정점이다. 11의 경우도 3과 마찬가지로 7 의 조상인 5와 연결되어 지날 수 있는 정점이다.
  • 62. 1 2 3 4 7 8 9 10 11 5 6 10번 정점을 root로 하는 subtree에 있는 정점들은 11로 갈 수 있으므로 가능한 정점이 다.
  • 63. 1 2 3 4 7 8 9 10 11 5 6 그 외 정점들은 지나는 것이 불 가능함을 알 수 있다.
  • 64. G.  내가 어디를 거쳐갔더라? • 각 정점에 대해,  자신을 거치지 않고 자신의 조상 노드로 갈 수 없는 정점 개수를 저장한다.    (u번 정점에 대한 이 값 : Cnt[u]) • 이는 DFS  traversal을 하면서 같이 구할 수 있다.  (절선 구하기)
  • 65. G.  내가 어디를 거쳐갔더라? • 1.  u와 v가 서로 조상 -­ 자손 관계가 아닐 경우 • u의 subtree에도 포함되지 않고,  v의 subtree에도 포함되지 않는 정점은 방문 가능 • N  -­ Cnt[u]  +  Cnt[v]가 답
  • 66. G.  내가 어디를 거쳐갔더라? • 2.
  • 67.  u가 v의 조상인 경우 – v의 subtree 중에서는 Cnt[v]개만큼 방문 불가능 u w v
  • 68. H.  프로도의 선물 포장 • 선물의 배치 방법은 크게 두 가지
  • 69. H.  프로도의 선물 포장 • 선물의 배치 방법은 크게 두 가지 1.  세 선물 상자를 일렬로 놓기 2.  한 선물상자 |  다른 두 선물 상자
  • 70. H.  프로도의 선물 포장 • 선물의 배치 방법은 크게 두 가지 • 가능한 모든 방법을 다 돌려봅시다. 1.  세 선물 상자를 일렬로 놓기 2.  한 선물상자 |  다른 두 선물 상자
  • 71. H.  프로도의 선물 포장 • 선물의 배치 방법은 크게 두 가지 • 가능한 모든 방법을 다 돌려봅시다. § 90도 회전 2Y 가지,  선물 순서 3!가지를 고려해야 합니다 1.  세 선물 상자를 일렬로 놓기 2.  한 선물상자 |  다른 두 선물 상자
  • 72. I.  International  meeting • UTC+𝑥에서 현재 𝑛시라면,  UTC+𝑦에서는 몇 시일까?
  • 73. I.  International  meeting • UTC+𝑥에서 현재 𝑛시라면,  UTC+𝑦에서는 몇 시일까? • UTC+0에서 𝑛 − 𝑥시
  • 74. I.  International  meeting • UTC+𝑥에서 현재 𝑛시라면,  UTC+𝑦에서는 몇 시일까? • UTC+0에서 𝑛 − 𝑥시 • UTC+𝑦에서 𝑛 − 𝑥 + 𝑦시
  • 75. I.  International  meeting • UTC+𝑥에서 현재 𝑛시라면,  UTC+𝑦에서는 몇 시일까? • UTC+0에서 𝑛 − 𝑥시 • UTC+𝑦에서 𝑛 − 𝑥 + 𝑦시 • 따라서 𝑛 − 𝑥 + 𝑦를 구해서 잘 출력합니다.
  • 76. I.  International  meeting • UTC+𝑥에서 현재 𝑛시라면,  UTC+𝑦에서는 몇 시일까? • UTC+0에서 𝑛 − 𝑥시 • UTC+𝑦에서 𝑛 − 𝑥 + 𝑦시 • 따라서 𝑛 − 𝑥 + 𝑦를 구해서 잘 출력합니다. • 하지만 우리에게는 0.5가 남았다!
  • 77. I.  International  meeting • UTC+𝑥에서 현재 𝑛시라면,  UTC+𝑦에서는 몇 시일까? • UTC+0에서 𝑛 − 𝑥시 • UTC+𝑦에서 𝑛 − 𝑥 + 𝑦시 • 따라서 𝑛 − 𝑥 + 𝑦를 구해서 잘 출력합니다. • 하지만 우리에게는 0.5가 남았다! • 0.5시 =  30분
  • 78. I.  International  meeting • UTC+𝑥에서 현재 𝑛시라면,  UTC+𝑦에서는 몇 시일까? • UTC+0에서 𝑛 − 𝑥시 • UTC+𝑦에서 𝑛 − 𝑥 + 𝑦시 • 따라서 𝑛 − 𝑥 + 𝑦를 구해서 잘 출력합니다. • 하지만 우리에게는 0.5가 남았다! • 0.5시 =  30분 • 역시 잘 출력합니다.
  • 79. J. 분할 • 한 차원만 생각하면 Depth 0 : 14
  • 80. J. 분할 • 한 차원만 생각하면 Depth 0 : 14 Depth 1 : 7 7
  • 81. J. 분할 • 한 차원만 생각하면 Depth 0 : 14 Depth 1 : 7 7 Depth 2 : 3 4 3 4
  • 82. J. 분할 • 한 차원만 생각하면 Depth 0 : 14 Depth 1 : 7 7 Depth 2 : 3 3 4 4
  • 83. J. 분할 • 한 차원만 생각하면 Depth 0 : 14 Depth 1 : 7 7 Depth 2 : 3 3 4 4 Depth 3 : 1 2 1 2 2 2 2 2
  • 84. J. 분할 • 한 차원만 생각하면 Depth 0 : 14 Depth 1 : 7 7 Depth 2 : 3 3 4 4 Depth 3 : 1 1 2 2 2 2 2 2
  • 87. J. 분할 Depth 2 1 1 2 2 2 1 2 2
  • 88. J. 분할 Depth 2 1 1 2 2 2 1 2 2
  • 92. J. 분할 • 실제로 할 때는 배열의 크기가 너무 크기 때문에, 같은 depth에 서 1차원 크기의 종류가 두 개 이하, 2차원 배열의 종류는 네 개 이하라는 사실을 이용하여 각 크기에 대해 개수가 몇 개인지 저 장하여 이전 depth에서 다음 depth에 있는 배열 종류와 그 개 수를 저장하여 문제를 해결할 수 있습니다.
  • 93. K.  The  festival  must  go  on • 최대 길이가 𝑙일 때 𝑀개의 간선을 선택할 수 있는가?
  • 94. K.  The  festival  must  go  on • 최대 길이가 𝑙일 때 𝑀개의 간선을 선택할 수 있는가? • 있다면?  – 최대 길이가 𝑙 이상이어도 선택 가능
  • 95. K.  The  festival  must  go  on • 최대 길이가 𝑙일 때 𝑀개의 간선을 선택할 수 있는가? • 있다면?  – 최대 길이가 𝑙 이상이어도 선택 가능 • 없다면?  – 최대 길이가 𝑙 이하여도 선택 불가능
  • 96. K.  The  festival  must  go  on • 최대 길이가 𝑙일 때 𝑀개의 간선을 선택할 수 있는가? • 있다면?  – 최대 길이가 𝑙 이상이어도 선택 가능 • 없다면?  – 최대 길이가 𝑙 이하여도 선택 불가능 • 따라서 결정 문제로 바뀐다
  • 97. K.  The  festival  must  go  on • 최대 길이가 𝑙일 때 𝑀개의 간선을 선택할 수 있는가? • 있다면?  – 최대 길이가 𝑙 이상이어도 선택 가능 • 없다면?  – 최대 길이가 𝑙 이하여도 선택 불가능 • 따라서 결정 문제로 바뀐다 • 이분 탐색(Parametric  Search)을 통해 𝑙의 값을 정할 수 있다
  • 98. K.  The  festival  must  go  on • 최대 길이가 𝑙일 때 𝑀개의 간선을 선택할 수 있는가? • 요약:  탐욕 알고리즘
  • 99. K.  The  festival  must  go  on • 최대 길이가 𝑙일 때 𝑀개의 간선을 선택할 수 있는가? • 요약:  탐욕 알고리즘 • 𝑢를 루트로 하는 각 서브트리마다,
  • 100. K.  The  festival  must  go  on • 최대 길이가 𝑙일 때 𝑀개의 간선을 선택할 수 있는가? • 요약:  탐욕 알고리즘 • 𝑢를 루트로 하는 각 서브트리마다, § 최대 길이가 𝑙 이하이면서
  • 101. K.  The  festival  must  go  on • 최대 길이가 𝑙일 때 𝑀개의 간선을 선택할 수 있는가? • 요약:  탐욕 알고리즘 • 𝑢를 루트로 하는 각 서브트리마다, § 최대 길이가 𝑙 이하이면서 § 선택하는 간선의 수를 최대화하면서
  • 102. K.  The  festival  must  go  on • 최대 길이가 𝑙일 때 𝑀개의 간선을 선택할 수 있는가? • 요약:  탐욕 알고리즘 • 𝑢를 루트로 하는 각 서브트리마다, § 최대 길이가 𝑙 이하이면서 § 선택하는 간선의 수를 최대화하면서 § 루트에서 끝나는 선택된 간선들로만 이루어진 경로의 최대 길이를 최소화하는
  • 103. K.  The  festival  must  go  on • 최대 길이가 𝑙일 때 𝑀개의 간선을 선택할 수 있는가? • 요약:  탐욕 알고리즘 • 𝑢를 루트로 하는 각 서브트리마다, § 최대 길이가 𝑙 이하이면서 § 선택하는 간선의 수를 최대화하면서 § 루트에서 끝나는 선택된 간선들로만 이루어진 경로의 최대 길이를 최소화하는 • 선택 방법을 찾아낸다.
  • 104. K.  The  festival  must  go  on • 최대 길이가 𝑙일 때 𝑀개의 간선을 선택할 수 있는가? • 요약:  탐욕 알고리즘 • 𝑢를 루트로 하는 각 서브트리마다, § 최대 길이가 𝑙 이하이면서 § 선택하는 간선의 수를 최대화하면서 § 루트에서 끝나는 선택된 간선들로만 이루어진 경로의 최대 길이를 최소화하는 • 선택 방법을 찾아낸다. 간선 최대한 많이 선택 이 경로의 길이 최소화 𝑢 최대 길이 ≤ 𝑙
  • 105. K.  The  festival  must  go  on • 최대 길이가 𝑙일 때 𝑀개의 간선을 선택할 수 있는가? • 요약:  탐욕 알고리즘 𝑎 𝑏 𝑢 𝑐
  • 106. K.  The  festival  must  go  on • 최대 길이가 𝑙일 때 𝑀개의 간선을 선택할 수 있는가? • 요약:  탐욕 알고리즘 𝑎 𝑏 𝑢 𝑐 루트가 끝인 경로의 길이가 긴 순으로 정렬
  • 107. K.  The  festival  must  go  on • 최대 길이가 𝑙일 때 𝑀개의 간선을 선택할 수 있는가? • 요약:  탐욕 알고리즘 𝑎 𝑏 𝑢 𝑐
  • 108. K.  The  festival  must  go  on • 최대 길이가 𝑙일 때 𝑀개의 간선을 선택할 수 있는가? • 요약:  탐욕 알고리즘 𝑎 𝑏 𝑢 𝑐
  • 109. K.  The  festival  must  go  on • 최대 길이가 𝑙일 때 𝑀개의 간선을 선택할 수 있는가? • 요약:  탐욕 알고리즘 𝑎 𝑏 𝑢 𝑐 초록색 경로의 길이 ≤ 𝑙이면? -­  모든 보라색 간선 선택 가능
  • 110. K.  The  festival  must  go  on • 최대 길이가 𝑙일 때 𝑀개의 간선을 선택할 수 있는가? • 요약:  탐욕 알고리즘 𝑎 𝑏 𝑢 𝑐 초록색 경로의 길이 ≤ 𝑙이면? -­  모든 보라색 간선 선택 가능 아니면?
  • 111. K.  The  festival  must  go  on • 최대 길이가 𝑙일 때 𝑀개의 간선을 선택할 수 있는가? • 요약:  탐욕 알고리즘 𝑎 𝑏 𝑢 𝑐
  • 112. K.  The  festival  must  go  on • 최대 길이가 𝑙일 때 𝑀개의 간선을 선택할 수 있는가? • 요약:  탐욕 알고리즘 𝑎 𝑏 𝑢 𝑐
  • 113. K.  The  festival  must  go  on • 최대 길이가 𝑙일 때 𝑀개의 간선을 선택할 수 있는가? • 요약:  탐욕 알고리즘 𝑎 𝑏 𝑢 𝑐
  • 114. K.  The  festival  must  go  on • 최대 길이가 𝑙일 때 𝑀개의 간선을 선택할 수 있는가? • 요약:  탐욕 알고리즘 𝑎 𝑏 𝑢 𝑐 초록색 경로의 길이 ≤ 𝑙이면? -­  모든 보라색 간선 선택 가능
  • 115. K.  The  festival  must  go  on • 최대 길이가 𝑙일 때 𝑀개의 간선을 선택할 수 있는가? • 요약:  탐욕 알고리즘 𝑎 𝑏 𝑢 𝑐 초록색 경로의 길이 ≤ 𝑙이면? -­  모든 보라색 간선 선택 가능 아니면?
  • 116. K.  The  festival  must  go  on • 최대 길이가 𝑙일 때 𝑀개의 간선을 선택할 수 있는가? • 요약:  탐욕 알고리즘 𝑎 𝑏 𝑢 𝑐
  • 117. K.  The  festival  must  go  on • 최대 길이가 𝑙일 때 𝑀개의 간선을 선택할 수 있는가? • 요약:  탐욕 알고리즘 𝑎 𝑏 𝑢 𝑐
  • 118. K.  The  festival  must  go  on • 최대 길이가 𝑙일 때 𝑀개의 간선을 선택할 수 있는가? • 요약:  탐욕 알고리즘 • 이런 식으로 재귀적으로문제를 해결할수 있습니다.
  • 119. K.  The  festival  must  go  on • 최대 길이가 𝑙일 때 𝑀개의 간선을 선택할 수 있는가? • 요약:  탐욕 알고리즘 • 이런 식으로 재귀적으로문제를 해결할수 있습니다. • 이게 왜 되는지 적고 싶은데 시간이 없네요.
  • 120. K.  The  festival  must  go  on • 최대 길이가 𝑙일 때 𝑀개의 간선을 선택할 수 있는가? • 요약:  탐욕 알고리즘 • 이런 식으로 재귀적으로문제를 해결할수 있습니다. • 이게 왜 되는지 적고 싶은데 시간이 없네요. • 시간복잡도:  𝑂 log길이 ×𝑁 log 𝑁 • 이분탐색x  정점 수 x  정렬
  • 121. K.  The  festival  must  go  on • 최대 길이가 𝑙일 때 𝑀개의 간선을 선택할 수 있는가? • 요약:  탐욕 알고리즘 • 이런 식으로 재귀적으로문제를 해결할수 있습니다. • 이게 왜 되는지 적고 싶은데 시간이 없네요. • 시간복잡도:  𝑂 log길이 ×𝑁 log 𝑁 • 이분탐색x  정점 수 x  정렬 • 처음 만든 풀이:  DP를 활용한 𝑂 𝑁2 log길이 • 이분탐색의아이디어는같고,  냅색 같은 걸 합니다. • 역시 설명하고 싶으나시간이 없습니다.  
  • 122. L.  수열의 장인 • 답은 0  이상 • 𝑛 ≥ 2이기 때문
  • 123. L.  수열의 장인 • 답은 0  이상 • 𝑛 ≥ 2이기 때문 • 곱의 최댓값이 아니라 합의 최댓값이었다면? • 𝑇 𝑖 = max 𝑇 𝑖 − 1 ,0 + 𝑎M • (답)  =  max 𝑇 𝑖
  • 124. L.  수열의 장인 • 답은 0  이상 • 𝑛 ≥ 2이기 때문 • 곱의 최댓값이 아니라 합의 최댓값이었다면? • 𝑇 𝑖 = max 𝑇 𝑖 − 1 ,0 + 𝑎M • (답)  =  max 𝑇 𝑖 • 곱의 최댓값도 저렇게? • 𝑇 𝑖 = max 𝑇 𝑖 − 1 ,1 ×𝑎M • (답)  =  max 𝑇 𝑖
  • 125. L.  수열의 장인 • 답은 0  이상 • 𝑛 ≥ 2이기 때문 • 곱의 최댓값이 아니라 합의 최댓값이었다면? • 𝑇 𝑖 = max 𝑇 𝑖 − 1 ,0 + 𝑎M • (답)  =  max 𝑇 𝑖 • 곱의 최댓값도 저렇게? • 𝑇 𝑖 = max 𝑇 𝑖 − 1 ,1 ×𝑎M • (답)  =  max 𝑇 𝑖 • 문제점:   −𝟐 𝟐 × −2 𝟐× −2
  • 126. L.  수열의 장인 • 답은 0  이상 • 𝑛 ≥ 2이기 때문 • 곱의 최댓값이 아니라 합의 최댓값이었다면? • 𝑇 𝑖 = max 𝑇 𝑖 − 1 ,0 + 𝑎M • (답)  =  max 𝑇 𝑖 • 곱의 최댓값도 저렇게? • 𝑇 𝑖 = max 𝑇 𝑖 − 1 ,1 ×𝑎M • (답)  =  max 𝑇 𝑖 • 문제점:   −𝟐 𝟐 × −2 𝟐× −2 • 음수와 음수를 곱하면 더 큰 양수가 만들어질 수 있다!
  • 127. L.  수열의 장인 • 그러니  최소, 최대를  저장하자!
  • 128. L.  수열의 장인 • 그러니  최소, 최대를  저장하자! • 최소 – 음수 중 절댓값이가장 큰 것,  최대 – 양수 중 최댓값이가장 큰 것 ..일 가능성 있음
  • 129. L.  수열의 장인 • 그러니  최소, 최대를  저장하자! • 최소 – 음수 중 절댓값이가장 큰 것,  최대 – 양수 중 최댓값이가장 큰 것 ..일 가능성 있음 • 이후의 풀이는 다 틀렸으므로 생략하고 언젠가 다시 올릴게요!