Notice
Recent Posts
Recent Comments
:: ADVANCE ::
[BaekJoon][2593] 엘리베이터 본문
반응형
BAEKJOON ONLINE JUDGE
한국정보올림피아드 시.도 지역본선 2005
https://www.acmicpc.net/problem/2593
1차 풀이 : DP
input을
elevator[층] : 각 층에서 갈 수 있는 엘리베이터 번호
fl[엘리베이터 번호] : 각 엘리베이터에서 갈 수 있는 층
들을 vector로 저장
dp[floor][elevator] : floor를 elevator로 도착할 때의 최소 이동 (floor 없어도 될 듯)
이동할 때 각 elevator를 중점으로 이동
요즘 DP 공부 중이라 DP 적으로 접근했는데 over한 듯...
답이 맞기는 하였지만 시간이 60ms가 나오기도 했고 이 풀이는 영 아닌것 같아서 다시 접근
2. BFS
이 문제의 핵심은 한번 탄 엘리베이터를 또 타지 않는다는 것이다. + 빨리 도착만 하면 되므로
층에 연결된 엘리베이터를 que에 넣어서 BFS
3. 다익스트라 (Dijkstra)
BFS로 문제를 풀고 보니 엘레베이터 간 연결을 graph로 표현하고 이를 최단경로 찾는 알고리즘을 이용하면 되겠다는 생각이 들어 다시 풀음
3_1 data 저장을 위와 같이 한 경우
3_2 data 저장을 엘리베이터간 연결만 graph로 표현한 경우
확실히 이 경우가 isLink 함수를 구현하는데 실수를 해서 골머리를 썩긴 했지만 메모리를 제일 적게 사용했다.
1등 소스 !~!
반응형
'Algorithm > graph' 카테고리의 다른 글
[BaekJoon][1613] 역사 (0) | 2016.10.11 |
---|---|
[BaekJoon][7577] 탐사 (0) | 2016.10.03 |
[BaekJoon][2611] 자동차 경주 (0) | 2016.09.01 |
[BaekJoon][1717] 집합의 표현 (0) | 2016.07.11 |
[BaekJoon][1916] 최소비용 구하기 (0) | 2016.07.04 |
Comments