프로그래머스 172928.공원 산책
프로그래머스의 문제 풀이 과정을 공유드린다.
문제 출처
1. 문제설명
- 출발점에서 경로에 따라 이동했을 때 마지막 좌표 값을 출력
2. 알고리즘 설계
- 방향을 지정해 목표치만큼 한칸씩 이동
- 이동 시 움직일 수 있는지 맵을 벗어났는지 체크
3. 로직
- 방향 지정
- 한칸씩 이동하기 위한 변수 선언
dy = 0, dx = 0; if (d == 'N') dy = -1; ELIF(d == 'E') dx = 1; ELIF(d == 'W') dx = -1; else dy = 1;
-
한칸씩 이동하면서 다음 위치가 움직일 수 있는지, 맵을 벗어나진 않았는지 체크
FOR(i, w) { ny += dy; nx += dx; if (ny < 0 || nx < 0 || ny >= n || nx >= m) return src; if (map[ny][nx] == 'X') return src; }
- 전체 코드
- 참고
- for문이랑 else if 겹쳐서 상수처리 해버림.
- 소감
- BFS의 축소판(?) 같은 문제
- 개인적으로 BFS 문제 풀이를 자주 해와서 어렵지 않았음.