티스토리 뷰
[BOJ 5014(G5) 리뷰]
강호씨가 엘리베이터를 타고 특정층에 가려고 한다.
현재 강호씨의 위치와 강호씨가 가고자 하는 층이 주어지고 U와 D값이 주어지는데 위로 가는 버튼을 클릭하면 위로 U층을 가며 아래로 가는 버튼을 누르면 아래로 D층을 간다. 강호씨가 현재 위치에서 가고자 하는 위치까지 버튼을 총 몇번 눌러야 하는지 출력해야 한다. 전에 풀어봤던 문제와 비슷해서 쉽게 구현할 수 있었다.
#include <iostream>
#include <algorithm>
#include <list>
#include <string>
#include <vector>
#include <stack>
#include <utility>
#include <queue>
#include <deque>
using namespace std;
int elev[2000002];
int main(void)
{
cin.tie(0);
ios::sync_with_stdio(0);
int F, S, G, U, D;
cin >> F >> S >> G >> U >> D;
queue <int> Q;
elev[S] = 1;
Q.push(S);
while (!Q.empty())
{
int cur = Q.front();
if (cur == G) break;
Q.pop();
for (int c : {cur - D, cur + U})
{
if (c<1 || c>F) continue;
if (elev[c] != 0) continue;
elev[c] = elev[cur] + 1;
Q.push(c);
}
}
if (elev[G])
cout << elev[G]-1;
else
cout << "use the stairs";
}
'알고리즘 풀이 > BFS' 카테고리의 다른 글
BOJ : 13913 숨바꼭질 4 (0) | 2020.08.05 |
---|---|
BOJ : 6593 상범 빌딩 (0) | 2020.08.05 |
BOJ 2146 : 다리 만들기 (0) | 2020.08.04 |
BOJ : 4179 불! (0) | 2020.08.03 |
BOJ 2573 : 빙산 (0) | 2020.08.03 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- typeORM
- 벨만포드
- 컴퓨터 통신
- 동적계획법
- 그리디
- 백준
- nodeJS
- 백트래킹
- 그래프
- boj
- 예외처리
- nestjs
- 투포인터
- 중앙대학교
- dfs
- 구현
- 컴퓨터 구조
- BFS
- java
- 자바
- 재귀
- 알고리즘
- 세그먼트 트리
- 스레드
- Computer Architecture
- 시뮬레이션
- nest.js
- node.js
- 자바스크립트
- ReactNative
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함