본문 바로가기

[알고스팟/ALGOSPOT] 4. CLOCKSYNC 알고리즘 알고파! 알고라파덕 안녕하세요~ 알고라파덕입니다! 이번 문제는 CLOCKSYNC라는 문제인데요~ 12시 3시 6시 9시로 되어있는 시계를 스위치를 이용해서 모두 12시로 바꾸는 최소로 눌러야할 스위치의 개수를 구하라 라는 것이에요. 모두 12시로 바꿀 수 없다면 -1을 출력해야 하구 시간초는 10S가 되겠어요~ 먼저 이 문제의 올바른 풀이법은 BFS(너비우선탐색)라고 생각해요~ 흠 먼저 기존 상태에서 사용 할 수 있는 스위치를 판별을 하여 가지를 뻗어나가요. 가지를 뻗다 모두 12시가 되면 그 방법이 항상 최소 스위치 개수가 되기 때문에 그 수를 출력해요. 대략적인 그림을 그렸는데 저기 트리의 맨윗부분 기존에서 예를 들어 스위치를 5개 사용하였다면 다른 형태의 5개의 정보가 QUEUE 배열에 들.. 더보기
[알고스팟/ALGOSPOT] 3. STRJOIN 알고리즘 알고파! 알고라파덕 안녕하세요~ 알고라파덕입니다! 알고스팟 제 3번째 문제는 STRJOIN이라는 문제입니다. N개의 문자열을 순서와 상관없이 합쳐서 한 개의 문을 만들 때 가장 적은 비용을 구하라는 문제가 됩니다. 이 문제를 생각해보면 항상 제일 작은 문자열끼리 서로 결합을 시키고 또 그다음 작은 문자열끼리 결합을 시켜야 합니다. 그래야 가장 작은 비용으로 결합을 시킬 수 있습니다. 그래서 1. N개의 문자열 길이를 오름차순 정렬을 한다. 2. 가장 작은 2개의 문자열을 결합시켜 문자열 길이를 갱신한다. 3. 나머지 N-1개의 문자열 길이를 오름차순 정렬을 한다. 4. 2~3번 과정을 반복하여 마지막 비용 값을 출력한다. 이런 과정이 되겠습니다. 문제 출처 : https://algospot.co.. 더보기
[알고스팟/ALGOSPOT] 2. MERCY 알고리즘 알고파! 알고라파덕 안녕하세요~ 알고라파덕입니다! 알고스팟에는 튜토리얼급 구현 문제가 9문제가 있습니다! 그중에서 첫 번째 튜토리얼 문제인 MERCY 문제를 봐봅시다. 입력에 10보다 작은 INTEGER 정수가 들어오면 그 개수만큼 Hello Algospot!을 출력을 해야합니다. 1. 임의의 개수 정수를 하나의 변수로 입력받는다. N 2. FOR문이나 WHILE문으로 Hello Algospot!을 출력한다. 튜토리얼급 구현 문제는 되게 간단가 많은데요. 얼른 포스팅하고 고급 알고리즘에 대해 설명을 하겠습니다~ 알고파! 알고라파덕! 문제 출처 : https://algospot.com/judge/problem/read/MERCY 더보기