(예외처리) n == k 일 경우에는 res 0 , 1 이 출력되어야함방문처리 , EX) 10이란 숫자에 방문횟수가 1번 이상일수도 있다.예외처리만 잘 해주면 BFS만 하면 정답이 나오는 것 같다.
현재 위치에서 \*2 로 이동하는것은 비용이 0 이다.1번에 의해서 큐에 제일 앞에 넣어줘서 \*2로 이동할 수 있는 모든경우의 수 를 dis(거리)에 저장을 해준다.그 이후에 + 1 , -1 거리를 이동하는 경우를 넣어준다.제일 중요한건 \*2로 이동하는 가중치가 0
한쪽 방향으로 기울이면 끝까지 보내준다.동시에 빠지면 실패같은위치에 있는 경우면 이동을 덜 한것이 먼저 도착하므로 이동을 많이 한 공 위치를 뒤로 한칸 빼준다.
bfs를 두번 사용처음 bfs를 돌면서 섬의 번호를 붙임외곽쪽에 섬의 번호를 -로 마킹을 함섬의 개수만큼 bfs를 돌림섬의 외곽 마킹한곳에서 부터 다른 섬이랑 이어질때까지 bfs를 돌림bfs를 돌렸을때 가장 적은 거리로 갱신을 해줌bfs 할 때 주의큐에서 빼면서 vis
bfs로 모든 경우의 수를 훑어보면 풀리는 문제예외처리 핵심 부분indexerror -> cur-1 >= 0 , cur \* 2 <= 100000 확인을 먼저 해야함visited에 바로 인덱스 접근을 해버리면 에러가 뜬다.cur-1 >= 0 에서 같거나 클 경우를
간단한 bfs 문제이다.' 벽을 뚫고 갈 수 있다.'이게 포인트 인데처음에는 드릴을 뚫었나 안뚫었나 이것만 생각해서visited 에는 count값, 오는데 걸린 횟수를 넣고0 , 1 로 뚫고왔는지 안뚫고 왔는지를 체크했다.이렇게 하니 11%에서 막혔다.그래서 visit
s - > 시작 층g - > 목표 층u - > 올라가는 버튼 층수d - > 내려가는 버튼 층수현재 층수 + u or - d 가 갈수있는 층 수 일경우에dq에 삽입해서 현재층수가 목표층 즉 g 까지 달성할때까지 bfs를 돌림만약 g층에 도달하지 못했을경우 use the
양 수 > 늑대 수 일경우에는 총 양의 수에 더해주고아닐경우에는 총 늑대 수 에 더해준다조건만 찾으면 간단하게 bfs구현만 하면 쉬운 문제이다.예제에서는 정답이라고 나왔는데 채점결과 틀렸다고 하였다.아무리 생각해도 틀린부분이없어서 다른 정답을 봤는데 다른부분이 없어서
dx , dy 나이트가 이동할수 있는 모든 경우의 수 총 8가지반복문을 사용해서 그래프 범위내에서 갈수 있는 모든경우의 수를 확인함타겟 목표에 도착하면 나이트의 이동횟수를 return하여 출력함dq를 pop할때 선입선출을 하니 방문했던 노드 확인 조건을 0으로 해놔서답