문제 출처
14499번: 주사위 굴리기
첫째 줄에 지도의 세로 크기 N, 가로 크기 M (1 ≤ N, M ≤ 20), 주사위를 놓은 곳의 좌표 x y(0 ≤ x ≤ N-1, 0 ≤ y ≤ M-1), 그리고 명령의 개수 K (1 ≤ K ≤ 1,000)가 주어진다. 둘째 줄부터 N개의 줄에 지도
www.acmicpc.net
1. 풀이 접근
ㆍ주사위 모양을 배열로 정의함
- 0 뒤 0
- 좌 상 우
- 앞
- 하
※ (주의) 입력을 받을 때 보통 생각하는 x, y 축이 바뀌어 있음.
ㆍ주사위 이동
- 이동하면서 현재 주사위 값을 임시 변수에 저장하고 이동할 때마다 바뀌는 값들을 매칭해서 넣어줌
- if (이동하려고 하는 곳이 벽이면)
* 이동 안함, 결과값 출력도 안함
ㆍ상태 확인
- if (이동한 곳에 숫자가 0보다 크면)
* 주사위가 맞닿아 있는 면 (하)에 숫자 복사, 이동한 곳의 숫자는 0으로 변경
- else if(이동한 곳의 숫자가 0이면)
* 주사위에 있는 숫자를 이동한 곳에 복사
ㆍ현재 주사위의 상단값 출력 ( 나의 주사위에선 '상'위치에 들어있는 값)
2. 소스코드
github.com/Choi-JinYeong/Solve_Alg/tree/master/Solve_Algs/src/Git_BJ_14503
Choi-JinYeong/Solve_Alg
알고리즘 풀이. Contribute to Choi-JinYeong/Solve_Alg development by creating an account on GitHub.
github.com
3. 맺음말
ㆍ체감난이도 : 약간 쉬움
ㆍ접근 방법에 대해 특별한 알고리즘이 필요하지 않아 어렵지 않지만, 문제의 순서와 로직을 정확하게 판단하고 그것을 구현하여야 함.
ㆍ더욱 좋은 풀이방법이나 보완할 수 있는 부분, 또는 문제가 될 수 있는 부분들은 알려주시면 감사하겠습니다.
'IT > 알고리즘 풀이' 카테고리의 다른 글
[백준] [자바] 15683번 : 감시 (0) | 2021.03.20 |
---|---|
[백준] [자바] 14501번 : 퇴사 (0) | 2021.03.19 |
[백준] [자바] 14889번 : 스타트와 링크 (0) | 2021.03.18 |
[백준] [자바] 14891번 : 톱니바퀴 (0) | 2021.03.17 |
[백준] [Java] 12865번 : 배낭 채우기 문제 (0) | 2021.03.06 |
댓글