본문 바로가기

알고리즘 문제풀이/알고리즘 C++ 풀이

[백준] 1938번: 통나무 옮기기 (C++ 풀이)

문제 https://www.acmicpc.net/problem/1938

풀이

하나하나 다~~ 구현하면 되는 문제이다.

1. 통나무의 가운데 좌표와 모양 정보만 가지고 진행하면된다. 도착지의 가운데 좌표와 모양정보도!

2. vis[x][y][통나무의 모양(ㅡ또는ㅣ)] : 이렇게 vis배열을 3차원으로 두고 BFS로 방문하면 된다.

3. 통나무의 모양이 ㅡ인지 ㅣ 인지, 통나무가 있어야할 곳에 1이 있는지(이동할 수 있는 곳인지) 일일이 체크하면서 큐에 넣어야한다. 

4. 통나무의 가운데 좌표와 모양이 도착지의 가운데 좌표와 모양과 같다면 BFS를 끝내면된다! 그 때 큐에 가지고 있는 현재 이동한 횟수를 출력해주면된다.

 

코드 https://github.com/ziwonii24/Algorithm/blob/master/Baekjoon/1938.cpp

결과