일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- DP
- 릿코드
- 벤쿠버
- 시애틀
- 라인플러스
- dfs
- Python
- Java
- 딥러닝
- 알고리즘
- jvm
- 프로그래밍언어론
- 스프링 프레임워크
- spring
- BFS
- 머신러닝
- 다이나믹프로그래밍
- 스타벅스
- 모두를 위한 딥러닝
- 백준
- Spring Framework
- 파이썬
- 프로그래머스
- leetcode
- C++
- C/C++
- binary search
- STL
- 라인
- 백트래킹
Archives
- Today
- Total
목록퍼즐 (1)
케이스윔의 개발 블로그
[백준][BFS] 1525번 퍼즐
문제 0은 비어있는 칸을 의미하고, 1~9까지 적힌 3*3 배열이 들어왔을 때 비어있는 칸으로 인접한 숫자들을 이동시키며 1, 2, 3, 4, 5, 6, 7, 8, 0 과 같은 정렬된 상태를 만드시오. 이 때 최소한의 이동횟수를 출력하고 만약 불가능하면 -1을 출력하시오.문제 출처: 백준 온라인저지(https://www.acmicpc.net/problem/1525) 풀이최소한의 이동횟수를 구해야하므로 큐를 사용해서 BFS를 써야겠다고 생각했습니다. 그런데 한번 큐를 pop했을 때 가능한 이동이 최대 4번인데 이 때 모든 이동했을 때마다 각 배열을 어떻게 저장해둬야할지 고민됐습니다. 일단 문제를 풀어보고자 struct 에서 3*3 배열을 선언해주어서 큐에 넣어봤습니다. 수행하다보니 큐사이즈가 엄청 커지게 ..
Algorithm/DFS &BFS
2018. 11. 29. 11:04