본문 바로가기

알고스팟8

[알고스팟/C,C++] FANMEETING: 팬미팅 www.algospot.com/judge/problem/read/FANMEETING algospot.com :: FANMEETING 팬미팅 문제 정보 문제 가장 멤버가 많은 아이돌 그룹으로 기네스 북에 올라 있는 혼성 팝 그룹 하이퍼시니어가 데뷔 10주년 기념 팬 미팅을 개최했습니다. 팬 미팅의 한 순서로, 멤버들과 참가 www.algospot.com 되게 어려운 문제라 알고리즘 문제 해결 전략(종만북)의 풀이를 참고하여 풀었습니다. 예제 입력인 FFFMMM, MMMFFF의 경우를 봅시다. 이는 F는 0으로 M은 1로 바꿔, 수열의 곱으로 나타낼 수 있습니다. 팬의 경우 역순으로 곱해주면 되는데요. 멤버와 팬의 각 자리별 곱의 결과는 해당 팬이 해당 멤버와 포옹을 하는지 악수를 하는지를 나타냅니다. 가령.. 2021. 3. 31.
[알고스팟/C,C++] FENCE: 울타리 잘라내기 www.algospot.com/judge/problem/read/FENCE algospot.com :: FENCE 울타리 잘라내기 문제 정보 문제 너비가 같은 N개의 나무 판자를 붙여 세운 울타리가 있습니다. 시간이 지남에 따라 판자들이 부러지거나 망가져 높이가 다 달라진 관계로 울타리를 통째로 교체 www.algospot.com 도무지 풀이가 떠오르지 않아 알고리즘 문제 해결 전략의 코드를 참고하여 풀었습니다 ㅜㅜ 반으로 잘라도 옆의 사각형과 연결을 시켜야 하는데 이 부분에서 애를 많이 먹었는데요. 중간을 기점으로 분할한 왼쪽과 오른쪽 중 큰 사각형을 받아오고 그 사각형을 기준으로 현재 검색할 구간의 끝까지 사각형을 합쳐 더 큰 사각형을 계속 반환합니다. int dv(int left, int right.. 2021. 3. 27.
[알고스팟/C,C++] QUADTREE: 쿼드 트리 뒤집기 www.algospot.com/judge/problem/read/QUADTREE algospot.com :: QUADTREE 쿼드 트리 뒤집기 문제 정보 문제 대량의 좌표 데이터를 메모리 안에 압축해 저장하기 위해 사용하는 여러 기법 중 쿼드 트리(quad tree)란 것이 있습니다. 주어진 공간을 항상 4개로 분할해 재귀적 www.algospot.com 처음에 입력값을 제대로 보지 않고 풀었는데, 들어올 수 있는 입력값이 $2^{20}\times 2^{20}$ 으로 매우 큰 수 입니다. 최초 시도는 입력값을 16 x 16 크기의 배열 형태로 변환하고, 그것을 뒤집은 뒤, 다시 압축하였습니다. 당연히 결과는 오답입니다. 쿼드 트리의 크기가 16 x 16으로 고정이 아닐뿐더러, 해당 방법으로는 시간이 초과.. 2021. 3. 27.
[알고스팟/C,C++] CLOCKSYNK: Synchronizing Clocks www.algospot.com/judge/problem/read/CLOCKSYNC algospot.com :: CLOCKSYNC Synchronizing Clocks 문제 정보 문제 그림과 같이 4 x 4 개의 격자 형태로 배치된 16개의 시계가 있다. 이 시계들은 모두 12시, 3시, 6시, 혹은 9시를 가리키고 있다. 이 시계들이 모두 12시를 가리키도록 www.algospot.com 재귀 호출을 통해 완전 탐색을 구현하는 것만으로 해결이 가능한 문제입니다. int clocks[CLOCK_CNT]; int* switches[SWITCH_CNT]{ new int[3]{0, 1, 2}, new int[4]{3, 7, 9, 11}, new int[4]{4, 10, 14, 15}, new int[5]{0, .. 2021. 3. 15.