-
https://www.acmicpc.net/problem/9019
https://github.com/JUNGSOONIL/JAVA/blob/main/BAEKJOON%209019
해당 문제는 특정 계산을 통해 A를 B로 바꾸는 계산을 구하는 문제다.
특정 계산은 총 4가지가 있으며 D,S,L,R이 존재한다
D는 현재 값 * 2를 하고 9999보다 크면 10000을 나눈 나머지를 저장한다
S : 현재값현재 값 -1을 하며 만약 현재 값이 0 이면 9999가 된다
L : 왼쪽으로 한 칸씩 밀어주기 젤 앞 값이 젤 뒤로 옴
R : 오른쪽으로 한 칸씩 밀어주기 젤 뒤 값이 젤 앞으로 옴
해당 문제는 bfs를 이용해서 해결했다.
문제 자체는 어렵지 않았으며, 일단 체크해야 할게 수 범위가 9999 즉 최대 4자리라는 것과
계산 결과를 어디다 저장해서 출력할지 였고, 수 범위가 9999이다 보니 배열을 하나 두고
String형으로 저장해주었다.
처음 입력 처리를 하고 시작 값을 큐에 넣어주고 bfs를 진행하며
bfs에서 큐에서 값을 빼오면 DSLR을 진행하고 결과를 통해
방문 배열을 체크해서 방문 안 했으면 방문 및 큐에 넣어주고 해당 연산 값을 연산 배열에 추가해준다
이런 식으로 연산을 계속 추가해주고 최종 값과 같아지게 되면 배열을 출력해주는 식으로
문제를 해결했다.
728x90'알고리즘 > Baekjoon' 카테고리의 다른 글
Baekjoon 1926 그림 JAVA (0) 2021.11.05 Baekjoon 12904 A와 B JAVA (0) 2021.11.05 Baekjoon 1978 소수 찾기 JAVA (0) 2021.11.04 Baekjoon 1463 1로 만들기 JAVA (0) 2021.11.04 Baekjoon 13305 주유소 JAVA (0) 2021.11.04 댓글