백준 1085번 - 직사각형에서 탈출(Java)
문제
한수는 지금 (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. 직사각형의 경계선까지의 최소 거리므로, 최솟값은 점 (x,y)로부터 경계선 까지의 수직 또는 수평 거리 중 하나다.
2. 상하좌우로 4개의 직선을 배열에 넣고 sort를 사용해 정렬 후, 최솟값을 출력했다.
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int x = scanner.nextInt();
int y = scanner.nextInt();
int w = scanner.nextInt();
int h = scanner.nextInt();
int list[] = new int[4];
list[0] = x;
list[1] = y;
list[2] = h-y;
list[3] = w-x;
Arrays.sort(list);
System.out.println(list[0]);
}
}
'코테 준비' 카테고리의 다른 글
백준 4153번 - 직각삼각형(Java) (0) | 2021.02.08 |
---|---|
백준 3009번 - 네 번째 점(Java) (0) | 2021.02.07 |
백준 9020번 - 골드바흐의 추측 (0) | 2021.02.05 |
백준 4948번 - 베르트랑 공준(Java) (0) | 2021.02.04 |
백준 1929번 - 소수 구하기(Java) (0) | 2021.02.03 |