반응형
반응형
https://www.acmicpc.net/problem/14499 14499번: 주사위 굴리기 첫째 줄에 지도의 세로 크기 N, 가로 크기 M (1 ≤ N, M ≤ 20), 주사위를 놓은 곳의 좌표 x, y(0 ≤ x ≤ N-1, 0 ≤ y ≤ M-1), 그리고 명령의 개수 K (1 ≤ K ≤ 1,000)가 주어진다. 둘째 줄부터 N개의 줄에 지 www.acmicpc.net 난이도: solved.ac 골드 4 구현 방법 board라는 2차원 배열에 지도에 적힌 번호를 저장했다. 그리고 dice라는 배열에 주사위의 각 면에 적힌 번호를 저장했다. dice[0]는 밑면에 적힌 번호, dice[1]는 윗면에 적힌 번호 dice[2]는 왼쪽면에 적힌 번호, dice[3]는 오른쪽면에 적힌 번호 dice[4]는..
https://www.acmicpc.net/problem/16236 16236번: 아기 상어 N×N 크기의 공간에 물고기 M마리와 아기 상어 1마리가 있다. 공간은 1×1 크기의 정사각형 칸으로 나누어져 있다. 한 칸에는 물고기가 최대 1마리 존재한다. 아기 상어와 물고기는 모두 크기를 가 www.acmicpc.net 난이도: solved.ac 골드 3 알고리즘 분류 구현, 시뮬레이션, 너비 우선 탐색 (BFS) 접근 방법 먹을 수 있는 물고기가 더 이상 없을 때까지 가장 가까이에 있는 물고기를 찾는 과정을 반복해 주면 된다. 물고기를 찾는 방식은 BFS를 이용하면 되는데, 일반적인 BFS 방식으로 구현하면 오답이 된다. 먹을 수 있는 최단 거리 내의 물고기가 여러마리일 때 왼쪽 위에 있는 물고기를 골라..
https://www.acmicpc.net/problem/16637 16637번: 괄호 추가하기 길이가 N인 수식이 있다. 수식은 0보다 크거나 같고, 9보다 작거나 같은 정수와 연산자(+, -, ×)로 이루어져 있다. 연산자 우선순위는 모두 동일하기 때문에, 수식을 계산할 때는 왼쪽에서부터 순 www.acmicpc.net 난이도: solved.ac 골드 3 알고리즘 분류 구현, 브루트포스 알고리즘 접근 방법 및 구현 괄호는 한 번에 최대 두 개의 숫자만 묶을 수 있으므로 괄호는 s[i]와 s[i+2]를 묶는다. s[i+2]가 문자열 크기를 벗어나지 않으면 괄호를 만들어 계산한다. 만든 괄호 안을 먼저 계산한 후, 지금까지 계산했던 결과와 함께 s[i-1]에 있는 연산자를 통해 계산한다. 괄호를 만들어 ..
https://www.acmicpc.net/problem/14502 14502번: 연구소 인체에 치명적인 바이러스를 연구하던 연구소에서 바이러스가 유출되었다. 다행히 바이러스는 아직 퍼지지 않았고, 바이러스의 확산을 막기 위해서 연구소에 벽을 세우려고 한다. 연구소는 크 www.acmicpc.net 난이도: solved.ac 골드 4 접근 방법 이 문제는 N과 M의 범위가 적어서 브루트포스 방식으로 풀 수 있다. 따라서 0인 부분 중 3개를 골라 벽을 세우는 모든 경우의 수를 두고 안전영역의 개수를 구했다. 0인 부분의 개수를 n이라고 하면, nC3의 경우의 수를 모두 파악해야 한다. 구현 nC3개의 경우의 수를 만드는 방법은 다음과 같다. 우선, 0인 부분의 좌표를 미리 저장해둔다. 나는 vacant라..
https://www.acmicpc.net/problem/3190 3190번: 뱀 'Dummy' 라는 도스게임이 있다. 이 게임에는 뱀이 나와서 기어다니는데, 사과를 먹으면 뱀 길이가 늘어난다. 뱀이 이리저리 기어다니다가 벽 또는 자기자신의 몸과 부딪히면 게임이 끝난다. 게임 www.acmicpc.net 난이도: solved.ac 골드 4 구현 방법 board라는 2차원 배열에 뱀의 현재 모습을 그렸고, dir라는 2차원 배열에 뱀의 머리(head)가 이동했던 방향을 나타내었다. 뱀의 머리의 위치와 방향을 나타내기 위해 H라는 구조체를 만들었고, 꼬리(tail)의 위치도 저장하기 위해 T라는 구조체를 만들었다. 초기 t(시간) 값은 1로 주었고, 이동할 때마다 1씩 증가하도록 하였다. 이동할 때는 먼저 ..