반응형
직사각형에서 탈출 성공
시간제한 메모리 제한 제출 정답 맞은 사람 정답 비율
2 초 | 128 MB | 42856 | 24822 | 22033 | 58.182% |
문제
한수는 지금 (x, y)에 있다. 직사각형은 각 변이 좌표축에 평행하고, 왼쪽 아래 꼭짓점은 (0, 0), 오른쪽 위 꼭짓점은 (w, h)에 있다. 직사각형의 경계선까지 가는 거리의 최솟값을 구하는 프로그램을 작성하시오.
입력
첫째 줄에 x, y, w, h가 주어진다.
출력
첫째 줄에 문제의 정답을 출력한다.
제한
- 1 ≤ w, h ≤ 1,000
- 1 ≤ x ≤ w-1
- 1 ≤ y ≤ h-1
- x, y, w, h는 정수
예제 입력 1
6 2 10 3
예제 출력 1
1
x = 현재 x좌표
y = 현재 y좌표
w = 직사각형 높이
h = 직사각형 넓이
BufferedReader로 입력값을 받는다
공백기준으로공백 기준으로 끊어져서 입력되기 때문에 StringTokenizer 클래스를 이용하여 공백 기준으로 나누어 변수에 값을 담는다
x에 위치해있다면 x까지의 거리를 구하는게 최단경로인 건지
아니면 x부터 총넓이까지의 거리를 구하는 게 최단경로인지 구해야 한다
몰론 y축도 같은 이론으로 성립된다
x_min과 y_min 변수를 선언하고
이 변수에 담길 값들은 Math.min(둘 중 작은 값 리턴)을 이용하여
Math.min(x, w-x) => Math.min(x까지 간 거리, x부터 총넓이까지 간 거리)를 구하면 x축의 최단경로가 나온다
y축도 동일하게 한 뒤에
x의 최단경로와 y의 최단경로도 같은 맥락으로 구해서 출력하면 된다
반응형
'TIL > Algorithm' 카테고리의 다른 글
Java 백준 4153번 문제 - 직각삼각형 (0) | 2021.10.27 |
---|---|
Java 백준 3009번 문제 - 네번째 점 (0) | 2021.10.26 |
Java 백준 9020번 문제 - 골드바흐의 추측 (0) | 2021.10.24 |
Java 백준 1929번 문제 - 베르트랑 공준 (0) | 2021.10.23 |
Java 백준 1929번 문제 - 에라토스테네스의 체 (0) | 2021.10.22 |