728x90
문제 링크: https://www.acmicpc.net/problem/23031
문제 풀이
일단 전형적인 시뮬레이션 문제같다.
방향에 따라서 움직임이 변경되기 때문에 배열을 추가했다.
0은 북쪽, 1은 동쪽, 2는 남쪽, 3은 서쪽으로 맞춰주고, 스위치를 켰을 때 불이 8방향으로 켜지므로 배열을 추가했다.
그리고 좀비의 좌표를 확인하면서 추가했고, 처음 방향은 남쪽이므로 2를 추가해줬다.
여기서 많이 간과할 수 있는 케이스가 있다.
일단 아리가 움직여서 좀비와 만나는 경우, 아리가 움직이고 좀비가 움직여서 아리랑 만나는 경우 2가지가 있다.
또한 불이 켜져있는 곳은 s로 바꿔줬는데, 불이 켜진 곳에 스위치가 있는 경우가 있다. s로 바꿀 경우 스위치를 켤 수 없으므로 A로 바꿔서 예외 처리해줬다.
무튼 나머지 구현은 본문에 나와있는 데로 잘 구현해주면 틀리지 않겠지만, 필자는 맞왜틀 당하다가 지인한테 물어봤는데 다른 건 다 맞고 방향을 바꾸는 곳을 잘못 적었다.
3190(뱀), 14503(로봇 청소기)에 이어서 3번째 코드 다맞고 방향 바꾸기에 오류가 있었다.
다음에도 이런 문제에 맞왜틀하면 방향부터 봐야겠다...
코드
728x90
'BOJ' 카테고리의 다른 글
[BOJ][Python] 백준 14889번 - 스타트와 링크 (0) | 2021.09.21 |
---|---|
[BOJ][Python] 백준 22993번 - 서든어택 3 (0) | 2021.09.21 |
[BOJ][Python] 백준 22938번 - 백발백준하는 명사수 (0) | 2021.09.20 |
[BOJ][Python] 백준 1504번 - 특정한 최단 경로 (0) | 2021.09.20 |
[BOJ][Python] 백준 23056번 - 참가자 명단 (0) | 2021.09.20 |