https://www.acmicpc.net/problem/5014
5014번: 스타트링크
첫째 줄에 F, S, G, U, D가 주어진다. (1 ≤ S, G ≤ F ≤ 1000000, 0 ≤ U, D ≤ 1000000) 건물은 1층부터 시작하고, 가장 높은 층은 F층이다.
www.acmicpc.net
Java 코드
import java.util.Scanner;
import java.util.Queue;
import java.util.LinkedList;
public class Main {
static int f;
static int u;
static int d;
static StringBuilder sb = new StringBuilder();
static Queue<Integer> q;
static int[] visit;
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
f = sc.nextInt();
int s = sc.nextInt();
int g = sc.nextInt();
u = sc.nextInt();
d = sc.nextInt();
visit = new int[f + 1];
bfs(s, g);
System.out.println(sb);
}
public static void bfs(int s, int g) {
q = new LinkedList<>();
visit[s] = 1;
q.add(s);
while(!q.isEmpty()) {
int num = q.poll();
if(num == g) {
sb.append(visit[num] - 1);
return;
}
int up = num + u;
int down = num - d;
if(up >= 1 && up <= f && visit[up] == 0) {
q.add(up);
visit[up] = visit[num] + 1;
}
if(down >= 1 && down <= f && visit[down] == 0) {
q.add(down);
visit[down] = visit[num] + 1;
}
}
if(visit[g] == 0) sb.append("use the stairs");
}
}
'백준' 카테고리의 다른 글
백준 2504 괄호의 값(Java) (0) | 2023.02.19 |
---|---|
백준 1890 점프(Java) (0) | 2023.02.18 |
백준 6064 카잉 달력(Java) (0) | 2023.02.18 |
백준 1309 동물원(Java) (0) | 2023.02.18 |
백준 1946 신입 사원(Java) (0) | 2023.02.18 |