-문제: https://www.acmicpc.net/problem/17070

 

17070번: 파이프 옮기기 1

유현이가 새 집으로 이사했다. 새 집의 크기는 N×N의 격자판으로 나타낼 수 있고, 1×1크기의 정사각형 칸으로 나누어져 있다. 각각의 칸은 (r, c)로 나타낼 수 있다. 여기서 r은 행의 번호, c는 열의

www.acmicpc.net

깊이우선 탐색인 것 같은데 이전에 풀었던 문제는 동,서,남,북 네 방향이었는데 이거는 대각선 포함 방향 3개라서 또 새로운 문제였다 

 

-정답풀이1: 

 

  • pypy3으로 돌려야지 시간초과가 안 뜬다 
  • 방향이 세개인 걸 shape으로 나누어서 진행하면 된다 
  • 파이프를 옮기다 보면 n-1 컬럼에 있을 때 예외상황을 어떻게 처리해야하는지 잘 몰랐는데 10,14,18번 줄처럼 if문 처리하면 된다 
  • 진행할 때 주변에 벽(숫자 1)이 있는지 없는지 확인할 방법은 11,15,19번 줄을 참고하면된다 

 

-정답풀이2:

 

  • 따로 0행렬을 만들어서 거기에 경우의수 누적하려고 했는데 방향이 3개라서 경우의 수를 나누는게 어려웠다.
  • 그런데 이제 같은 크기의 행렬을 3개 만들어서 각각 움직이는 경우의 수 대입한 후에 행렬 오른쪽 끝 값을 모두 더해서 출력하면 답이다. 

 

+ Recent posts