본문 바로가기

전체 글

(22)
[알고리즘 문제] 백준 9019번 DSLR 9019번: DSLR (acmicpc.net) 9019번: DSLR 네 개의 명령어 D, S, L, R 을 이용하는 간단한 계산기가 있다. 이 계산기에는 레지스터가 하나 있는데, 이 레지스터에는 0 이상 10,000 미만의 십진수를 저장할 수 있다. 각 명령어는 이 레지스터에 www.acmicpc.net 문제 한 수에서 여러 명령을 수행해 다른 값으로 만드는 문제다. 아이디어 만약 문제를 보고 수학 계산으로 해결할 수 있을 거라 생각했다면 함정에 빠진 것이다. 숫자 사이를 공식으로 구할 방법은 없으며, 각 숫자를 그래프의 노드로 보고 DSLR 명령을 노드 사이의 간선으로 생각한다면 BFS를 통해 둘 사이의 거리를 구할 수 있다. 1. 초기 값에서 시작하는 BFS 큐를 만든다. 2. 현재 위치에서 D, S..
[알고리즘 문제] 백준 7569번 토마토 7569번: 토마토 (acmicpc.net) 7569번: 토마토 첫 줄에는 상자의 크기를 나타내는 두 정수 M,N과 쌓아올려지는 상자의 수를 나타내는 H가 주어진다. M은 상자의 가로 칸의 수, N은 상자의 세로 칸의 수를 나타낸다. 단, 2 ≤ M ≤ 100, 2 ≤ N ≤ 100, www.acmicpc.net 문제 3차원 배열 그래프 상에서 토마토가 익는 시간을 측정하는 문제입니다. 아이디어 BFS를 사용하는 몇 가지 방법이 있겠지만, 여기서는 가장 단순한 방법을 사용합니다. 시간을 들여 직접 토마토를 익혀봅시다. 1. 처음 익은 토마토의 리스트를 만듭니다. 정확히는 다음 시간에 주변에 영향을 줄 토마토들입니다. 2. 익은 토마토의 주변에 안 익은 토마토, 즉 다음에 익을 토마토를 익히고 리스트로 만..
[알고리즘 문제] 백준 4963번 섬의 개수 4963번: 섬의 개수 (acmicpc.net) 4963번: 섬의 개수 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스의 첫째 줄에는 지도의 너비 w와 높이 h가 주어진다. w와 h는 50보다 작거나 같은 양의 정수이다. 둘째 줄부터 h개 줄에는 지도 www.acmicpc.net 문제 2차원 그래프 상에 연결된 섬의 개수를 구하는 문제다. 그림에 제시된 상황에서는 총 3개의 섬을 찾을 수 있다. 아이디어 1. 지도의 좌상단에서 시작하여 우하단으로 이동하며 섬을 찾는다. 2. 만약 현재 탐색한 칸이 섬이면, 주변에 연결된 섬을 모두 찾는다. 문제 데이터가 50*50으로 작기 때문에 DFS, BFS 어느 방법을 사용해도 문제없다. 연결된 섬은 표시를 해서 다시 카운트하지 않도록 한다. 섬..