-문제: 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개 만들어서 각각 움직이는 경우의 수 대입한 후에 행렬 오른쪽 끝 값을 모두 더해서 출력하면 답이다.
'백준 > DP' 카테고리의 다른 글
[코딩테스트] 백준 14002번: 가장 긴 증가하는 부분 수열4 (0) | 2022.01.13 |
---|---|
[코딩테스트] 백준 1965번: 상자넣기 (0) | 2022.01.13 |
[코딩테스트] 백준 1915번: 가장 큰 정사각형 (0) | 2022.01.11 |
[코딩테스트] 백준 10942번: 팰린드롬?(다시 복습 완료,6/20) (0) | 2022.01.11 |
[코딩테스트] 백준 11660번: 구간 합 구하기 5 (0) | 2022.01.10 |