Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 1182
- Ajax
- 장고
- 연산자 끼워넣기
- 14502
- 색종이 붙이기
- django
- Java
- 17136
- 17143
- 백준
- 좋아요
- 14888
- 따라하기
- 괄호추가하기
- 16637
- 17144
- 부분수열의 합
- 인스타그램
- 미세먼지 안녕!
- 구슬탈출2
- 알고리즘
- 다리 만들기2
- 6603
- 재귀
- 인스타
- 댓글
- 로또
- 17472
- 9095
Archives
- Today
- Total
목록벽 부수고 이동하기 (1)
Be a developer
백준 2206 벽 부수고 이동하기
최단 경로를 구하는 문제이고, 한 칸 이동하는 것을 가중치 1로 둘 수 있으므로 bfs로 풀 수 있는 문제다. 벽을 1번 부순 경우와 벽을 부수지 않은 상태로 이동하는 경우가 다르기 때문에 다른 정점으로 봐야 한다. 따라서 3차원 배열로 선언하여 벽을 부쉈을 때 비용과 부수지 않았을 때 비용을 구분하여 준다. 그리고 queue에는 벽을 부쉈는지 여부도 전달해주어야 한다. 처음에는 [row][col][0]에 비용을 저장하고, [row][col][1]에 벽을 부순 여부를 저장했는데, 이는 어느 특정한 칸을 왔을 때 벽을 한 번 부쉈는지 안 부쉈는지 경우의 수를 나누지 않은 것이었다. 아래는 처음 생각했던 코드 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 2..
알고리즘
2019. 4. 8. 13:59