반응형
[BOJ19237] 어른 상어 (Java, 구현, 시뮬레이션)
알고리즘2025. 1. 6. 21:42[BOJ19237] 어른 상어 (Java, 구현, 시뮬레이션)

문제 링크https://www.acmicpc.net/problem/19237 풀이개인적으로 상어 시리즈 문제 중에서 쉬운 편이었다고 생각한다구현 요구사항이 복잡해서 이해하는 수고가 필요할 뿐이지 반복문만으로 풀이 가능하였다  처음에 이해가 어려웠던게 아래의 상어의 방향별 우선순위 표였다문제에서 1, 2, 3, 4는 각각 위, 아래, 왼쪽, 오른쪽을 의미할 때①번 상어는 처음 오른쪽 방향을 바라보기 때문에 이동 가능한 위치를 탐색할 때 → ← ↑ ↓ 순으로 "빈칸" 또는 "자기 냄새나는 영역"을 찾는다 입출력 예시도 상어의 방향별 우선순위 때문에 처음에 알아보기 쉽지 않았지만, 두번 풀이하니 적응이 된다 입출력 예시 1에서5 4 4          // n m k (n : n * n, m : 상어 마리 수..

[BOJ19236] 청소년 상어 (Java, 백트래킹, 시뮬레이션)
알고리즘/완전 탐색2025. 1. 6. 21:05[BOJ19236] 청소년 상어 (Java, 백트래킹, 시뮬레이션)

문제 링크 https://www.acmicpc.net/problem/19236 풀이백트래킹이 약한 나에게 있어 정말 실수 연발했던 문제였다 (그래도 백트래킹 재미있다) ① 입력 데이터 초기화 후 상어가 `(0, 0)` 에 물고기를 먹고 그 방향을 가진다 ② 모든 물고기들이 이사를 시작한다- 작은 번호부터 순차적으로 이사- 이동 가능한 위치를 찾을 때 까지 반 시계 방향으로 제자리 회전하면서 빈칸 또는 물고기를 찾아 위치를 교환한다- 상어가 있거나, 맵의 경계를 벗어난 경우 다음 위치로 회전- 만약 이사 가능한 위치가 없다면 제자리를 유지한다③ 상어가 먹이를 탐색한다- 상어는 빈칸으로 이동 불가하고 이동하는 도중에 있는 물고기는 먹지 않는다- 이때, 큰 물고기를 먹는다고 항상 최적의 해를 보장하지 않는다 ..

[BOJ16236] 아기 상어 (Java, BFS, 시뮬레이션)
알고리즘/그래프 탐색2025. 1. 6. 20:47[BOJ16236] 아기 상어 (Java, BFS, 시뮬레이션)

문제 링크https://www.acmicpc.net/problem/16236 풀이- 구현(시뮬레이션), BFS 격자형 그래프 탐색 문제 - BFS와 2중 for문 만으로 충분하게 풀이 가능한 문제 요구사항 및 절차 ① 현재 상어 위치에서 잡아 먹을 수 있는 물고기까지의 최단 경로 거리를 구한다 - 이때 상어의 크기 이상인 물고기가 있는 칸은 지나갈 수 없다 (상어 크기 )- multi source bfs로 최단 거리를 구함 (시간 복잡도 O(V + E)) ② 최단 거리 정보에서 가장 가까운 물고기 한마리를 선택 (없으면 break문으로 종료)- 여러 마리인 경우 가장 위에 있는 물고기 중 가장 왼쪽에 있는 물고기를 선택- 처음에 정렬을 사용하는 방법을 생각했는나, 그럴 필요 없이 2중 for문으로 최단 ..

반응형
image