문제: https://www.acmicpc.net/problem/1039
BFS 문제입니다. 예외조건 때문에 많이 틀렸네요.
세 가지 주의점이 있습니다.
1. 바뀐 후의 숫자가 0으로 시작하면 안됩니다.
2. 10,20,30처럼 두 자리수이면서 0으로 끝나는 숫자는 Swap하면 안됩니다.
(단, 100,1000,10000 같은 숫자들은 괜찮습니다. 0 끼리 바꾸면 되니까요)
3. 총 K번 Swap 회차만큼 Swap을 할텐데, 각 회차가 될 때 마다 방문배열을 초기화해줘야 합니다.
무슨 말이냐면 이전에 나왔던 숫자가 나중에 나와도 됩니다.
이를 위해서 저는 매 루프를 while (!q.empty()) 가 아니라 while (q.size()--) 만큼만 돌았습니다.
코드: https://github.com/cottory/algorithm/blob/master/BOJ/BOJ1039.cc
'Algorithm > BOJ' 카테고리의 다른 글
[BOJ]3055번: 탈출 (0) | 2020.08.14 |
---|---|
[BOJ]5014번: 스타트링크 (0) | 2020.08.13 |
[BOJ]4195번: 친구 네트워크 (0) | 2020.08.11 |
[BOJ]16397번: 탈출 (0) | 2020.08.06 |
[BOJ]9019번: DSLR (0) | 2020.07.30 |