반응형
[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)` 에 물고기를 먹고 그 방향을 가진다 ② 모든 물고기들이 이사를 시작한다- 작은 번호부터 순차적으로 이사- 이동 가능한 위치를 찾을 때 까지 반 시계 방향으로 제자리 회전하면서 빈칸 또는 물고기를 찾아 위치를 교환한다- 상어가 있거나, 맵의 경계를 벗어난 경우 다음 위치로 회전- 만약 이사 가능한 위치가 없다면 제자리를 유지한다③ 상어가 먹이를 탐색한다- 상어는 빈칸으로 이동 불가하고 이동하는 도중에 있는 물고기는 먹지 않는다- 이때, 큰 물고기를 먹는다고 항상 최적의 해를 보장하지 않는다 ..

반응형
image