본문 바로가기

코테 준비

백준 1085번 - 직사각형에서 탈출(Java)

백준 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]);
	 }
}