shake! 본선 해설
TRANSCRIPT
문제 해설
A. 은하수벅스Solution 1 >
Binary search 로 받을 수 있는 텀블러의 갯수를 정합니다 .◦ 텀블러는 최소 0 개 , 최대 개 받을 수 있습니다 .
정한 텀블러 갯수 만큼 받을 수 있는지 확인합니다 .◦ 정한 텀블러 갯수가 M 이라 하면 ,◦ 여름 음료 스티커가 텀블러 하나당 다섯 장 있어야 하므로 , S ≥ 5M 인지 확인합니다 .◦ 여름 음료 또는 일반 음료 스티커가 텀블러 하나당 ( 여름 음료 5 장을 포함하여 ) 12 장 있어야 하므로
S - 5M + N ≥ (12 - 5)M 인지 확인합니다 .
답이 되는 텀블러 갯수 M 중 최댓값을 출력합니다 .
시간복잡도 :
출제자 : 정현환
A. 은하수벅스Solution 2 >
출제자 : 정현환
B. 학습 네트워크문제 1: 입력값들이 정해졌을 때 , N 번 노드의 값은 ?
◦ 자신에게 들어오는 모든 노드의 값들이 정해지면 자신의 값을 확정 가능◦ 순환노드가 없기 때문에 노드간의 순서를 정할 수 있음◦ 위상정렬을 통해서 노드간의 위상 ( 순서 ) 확정가능
1 4
3
2
4231
출제자 : 류현종
B. 학습 네트워크문제 2: 가능한 입력값의 종류는 ?
◦ 문제 제약조건에 의해서 모든 입력종류의 곱 <= 10,000
문제 1 에서 위상정렬 : O(n)
위상정렬 결과를 바탕으로 문제 2 의 모든 조합을 시도◦ 완전탐색문제 ! with O(cn), c <= 10,000
출제자 : 류현종
C. 술자리 계획하기동 ! 적 ! 계 ! 획 ! 법 !
D[i] = i 날 최대 즐거움
출제자 : 신동걸
1 일차 2 일차 3 일차 4 일차 5 일차
오늘 금주 ! 0 1 3 5 8
오늘 드링킹 어제 금주 ! 1 2 4 7 10
오늘 드링킹 어제도 드링킹 X 3 5 8 12
C. 술자리 계획하기하지만 시험
출제자 : 신동걸
1 일차 2 일차 3 일차 4 일차 5 일차
오늘 금주 ! 0 1 3 5 5
오늘 드링킹 어제 금주 ! 1 2 4 X 10
오늘 드링킹 어제도 드링킹 X 3 5 X X
D. 대역폭 어떤 간선이 통신에 포함되려면
즉 의 경우의 수가 있습니다 .
𝑥 𝑦𝐴 𝐵𝑤
출제자 : 김경근
D. 대역폭 통신에 포함된 간선 중에서 최솟값이 중요하므로 각 간선마다 자신이 최솟값이 되는 경우의 수를 따져줍니다 . ()
𝑥1𝑦 1
𝑤1
𝑥2𝑦 2
𝑤2
출제자 : 김경근
D. 대역폭 통신에 포함된 간선 중에서 최솟값이 중요하므로 각 간선마다 자신이 최솟값이 되는 경우의 수를 따져줍니다 . ()
𝑥1𝑦 1
𝑤1
𝑥2𝑦 2
𝑤2
𝐴1𝐵1
출제자 : 김경근
D. 대역폭 통신에 포함된 간선 중에서 최솟값이 중요하므로 각 간선마다 자신이 최솟값이 되는 경우의 수를 따져줍니다 . ()
𝑥1𝑦 1
𝑥2𝑦 2
𝑤2
출제자 : 김경근
D. 대역폭 통신에 포함된 간선 중에서 최솟값이 중요하므로 각 간선마다 자신이 최솟값이 되는 경우의 수를 따져줍니다 . ()
𝑥1𝑦 1
𝑥2𝑦 2
𝑤2
𝐴2 𝐵2
출제자 : 김경근
D. 대역폭 하지만 완성된 트리에서 간선을 없앤 다음 각 컴포넌트의 크기를 세는 것은 매우 어려운 작업입니다 .
때문에 , 반대로 대역폭이 큰 간선부터 시작하여 하나씩 그래프에 간선을 union-find 로 추가하면서 각 컴포넌트의 크기를 저장해 놓으면 간단하게 할 수 있습니다 .
Disjoint-set 자료구조를 이용하면 시간에 문제를 해결 할 수 있습니다 .
출제자 : 김경근
E. 마이 리틀 트리• 전위 순회와 중위 순회 결과로 트리 복원하기 :
• 중위 순회 결과를 전위 순회 결과로 쪼개면 됩니다 .
전위 순회 결과 : 1 2 4 3 5 6 7
중위 순회 결과 : 4 2 1 5 3 7 6
• 복원 후 BFS 로 순회하여 level order 로 출력합니다 .
• 레벨 별로 리스트를 만들어 push 하셔도 됩니다 .
출제자 : 정현환
F. 사탕 부수기 게임Solution 1>
• 왕사탕을 만드는 패턴을 미리 배열에 저장해 놓은 후 , 같은 종류의 사탕이 해당 패턴으로 나타나는가를 체크합니다 .
Solution 2>
• 왕사탕은 3 x 3 안에 같은 종류 사탕으로 이뤄진 열이 적어도 한 개 이상 , 행이 한 개 이상 존재하기만 하면 생깁니다 .따라서 3 x 3 마다 같은 종류로만 이뤄진 행과 열의 수를 세면 됩니다 .
출제자 : 김선영
G. 링크 게임 전체 보드의 크기가 아주 작기 때문에 모든 경우를 탐색해도 빠른 시간 안에 답을 구할 수 있습니다 .
알파벳을 정해서 시작점에서 끝점까지 도착하는 링크를 찾습니다 . 링크가 연결되면 , 링크 경로 위의 조약돌을 다른 링크에 속하지 않도록 체크합니다 .
모든 알파벳이 서로 연결되어 있고 , 모든 조약돌이 사용되었으면 , 경우의 수를 누적합니다 .
출제자 : 김진호