Algospot 34

POTION

https://algospot.com/judge/problem/read/POTION algospot.com :: POTION 마법의 약 문제 정보 문제 마법의 약 수업 시간에 교수님의 설명을 안 듣고 졸던 헤리는 실수로 냄비에 몇 가지 재료의 양을 잘못 넣고 말았습니다. 약의 색깔이 심상치 않게 변하는 것을 눈치챈 algospot.com 1000이하의 소수를 구함. 소수 배열로 입력값 r[i]를 최대공약수로 나눔(소수로 만듬) 입력값 p[i]와의 최대 비율값을 구함. 그 차이를 계산함. #include #include using namespace std; int n; int r[1000]; int p[1000]; int a[1000]; vector num; void Calculate(int rate) {..

ACM준비/algospot 2015.09.10

COINS

https://algospot.com/judge/problem/read/COINS algospot.com :: COINS Coin Change 문제 정보 문제 우리 나라에는 10원, 50원, 100원, 500원의 네 가지 동전이 있다. (1원짜리와 5원짜리는 거의 안 쓰니까 없는 걸로 하지요) 이 동전들을 이용해 110원을 거슬러 주는 방법은 몇 algospot.com DP문제임. 최대 M값이 5000이므로 모든 경우의 수를 계산하여 품. 가장 작은 동전의 종류부터 DP배열에 더해감. DP배열은 이전에 계산된 DP배열 값에 새로 추가된 동전 DP값을 더하여 만듬. #define MAX_COIN 5000 using namespace std; int main() { int T; for (scanf("%d",..

ACM준비/algospot 2015.09.09

INSERTION

https://algospot.com/judge/problem/read/INSERTION algospot.com :: INSERTION 삽입 정렬 뒤집기 문제 정보 문제 유명한 정렬 알고리즘인 삽입 정렬은 정렬된 부분 배열을 유지하며 이 배열에 새 원소를 삽입해 나가는 식으로 동작합니다. 주어진 정수 배열 A를 정렬하는 삽 algospot.com 삽입정렬의 초기값을 구하는 문제임. 1번의 Step마다 내부 Index를 참조하고 삭제해야함. STL의 vector나 list를 사용하면 시간초과가됨. 재정의하여 내부 참조는 꼼수를 사용하여 해결함. #include #include typedef struct node{ node * prev; node * next; int value; }NODE; int I[50..

ACM준비/algospot 2015.09.08

QUADTREE

https://algospot.com/judge/problem/read/QUADTREE algospot.com :: QUADTREE 쿼드 트리 뒤집기 문제 정보 문제 대량의 좌표 데이터를 메모리 안에 압축해 저장하기 위해 사용하는 여러 기법 중 쿼드 트리(quad tree)란 것이 있습니다. 주어진 공간을 항상 4개로 분할해 재귀적 algospot.com 기존 쿼드트리 : 0 -> 1 -> 2 -> 3 상하반전 쿼드트리 : 2 -> 3 -> 0 -> 1 #define SIZE 32 typedef struct leaf{ int depth; char value; leaf *parent; leaf *child[4]; }QTREE; bool MAP[SIZE][SIZE]; int CARD[4] = { 2, 3, ..

ACM준비/algospot 2015.08.24

GRID

https://algospot.com/judge/problem/read/GRID algospot.com :: GRID Tiling a Grid With Dominoes 문제 정보 문제 We wish to tile a grid 4 units high and N units long with rectangles (dominoes) 2 units by one unit (in either orientation). For example, the figure shows the five different ways that a grid 4 units high and algospot.com #점화식으로 해결함. 기존의 f(N)의 값에서 f(N+1)을 구하는 식은 다음과 같음. f(N+1) = f(N) // 그냥 2x1타일..

ACM준비/algospot 2015.08.18

CLEANER

https://algospot.com/judge/problem/read/CLEANER algospot.com :: CLEANER 어떤 과학의 인공지능 청소기 문제 정보 문제 어떤 최첨단 과학 도시에 살고 있는 일방통행 씨는 직사각형 모양의 방에서 살고 있었다. 최첨단 과학 도시임에도 불구하고 손수 청소를 하던 그는 algospot.com 백트래킹 모든 탐색으로 해결함. 다만, 느리다ㅜ #include int MAP[7][7]; int N, M, RESULT; void MOVE(int INDEX, int T) { if (INDEX == N*M - 1 && INDEX == T) { ++RESULT; return; } else if (MAP[INDEX / M][INDEX % M] == T) { int V; V..

ACM준비/algospot 2015.08.13

NQEEN

https://algospot.com/judge/problem/read/NQUEEN algospot.com :: NQUEEN N-Queen 문제 정보 문제 N-Queen 퍼즐은 N x N 크기의 체스판에 N 개의 퀸을, 서로 공격할 수 없도록 올려놓는 퍼즐이다. (퀸은 체스에서 가장 강력한 기물로, 자신의 위치에서 상하좌우, 그리고 대각선 algospot.com 완전 탐색을 진행함. N*N의 탐색은 TimeOut QEEN의 특성으로 한 줄에는 1개의 QEEN이 놓아져야함. 그래서 N까지 탐색하면 됨. #include #include int MAP[13][13]; int N, VALUE; bool INPUT(bool type,int c, int r) { if (type && MAP[c][r] != 0) r..

ACM준비/algospot 2015.08.13

PICNIC

https://algospot.com/judge/problem/read/PICNIC algospot.com :: PICNIC 소풍 문제 정보 문제 안드로메다 유치원 익스프레스반에서는 다음 주에 율동공원으로 소풍을 갑니다. 원석 선생님은 소풍 때 학생들을 두 명씩 짝을 지어 행동하게 하려고 합니다. 그런데 서로 algospot.com 모든 조합에서 조건을 만족하는 전체 경우의 수를 구함. bool friendMap[10][10]; int n, m; int countPairings(bool taken[10]) { int first = -1; for (int i = 0; i 0; CASE--) { memset(friendMap, 0, sizeof(friendMap)); for (scanf("%d %d", &n..

ACM준비/algospot 2015.08.05

ZEROONE

https://www.algospot.com/judge/problem/read/ZEROONE algospot.com :: ZEROONE 0-1수열 문제 정보 문제 0과 1로 구성된 수열이 있다. 수열의 길이가 N이라 하고, 각각의 수열의 원소마다 순서대로 번호를 매길 경우 첫 번째 숫자는 0번이 되고 두 번째 숫자는 1번, 그리고 마지 www.algospot.com 01 또는 10으로 바뀌는 순간 addIndex가 변경됨. 입력값 i, j의 차와 OUTPUT의 값을 비교하여 변경지점을 찾을 수 있음. index Searching은 시간초과로 실패함. #include #define abs(a)(((a) < (0))?-(a):(a)) char INPUT[1000001]; int OUTPUT[1000001];..

ACM준비/algospot 2015.08.05