백준 - 구슬 탈출 2(Kotlin)
제한사항 N, M (3 ≤ N, M ≤ 10) 문제 정리 구슬을 사방향 직선으로 움직일 수 있을 때, 빨간 구슬만 나오는 최소 움직임은? 접근 방법 일단, 최단 거리로 풀어야 하므로 BFS가 필요하다. BFS 사용하면 맵을 최신화 하는 방법은 불가능하다. 따라서, 맵을 최신화하지 않고 구슬을 움직여야 한다. 이 때, 문제점이 발생한다. 맵을 최신화하지 않는다면 구슬의 이동을 계산할 수 없어진다. 따라서, 이동하는 방향을 정항 때, 한 구슬은 뒤로 이동하면 된다. 이동하는 방향에 빨간 구슬이 있으면, 두 구슬을 이동한 후에 파란 구슬은 뒤로 한 칸 이동한다. 반대로 이동하는 방향에 파란 구슬이 있으면, 두 구슬을 이동한 후에 빨간 구슬은 뒤로 한 칸 이동한다. 코드 import java.io.Buffere..
2023. 12. 28.
백준 - 18500번: 미네랄(Kotlin)
제한사항 첫째 줄에 동굴의 크기 R과 C가 주어진다. (1 ≤ R,C ≤ 100) 다음 R개 줄에는 C개의 문자가 주어지며, '.'는 빈 칸, 'x'는 미네랄을 나타낸다. 다음 줄에는 막대를 던진 횟수 N이 주어진다. (1 ≤ N ≤ 100) 마지막 줄에는 막대를 던진 높이가 주어지며, 공백으로 구분되어져 있다. 모든 높이는 1과 R사이이며, 높이 1은 행렬의 가장 바닥, R은 가장 위를 의미한다. 첫 번째 막대는 왼쪽에서 오른쪽으로 던졌으며, 두 번째는 오른쪽에서 왼쪽으로, 이와 같은 식으로 번갈아가며 던진다. 느낀 점 아이디어 생각하는데 은근 시간을 뺏겼고, 구현하는 데에도 시간을 많이 뺏겼다. 요즘 느끼는 건데, 알고리즘에 큰 틀만 짜고 바로 코드 작성에 들어가면 이번처럼 코드가 꼬이거나 망가진다...
2023. 12. 21.