JAVA/Coding Test

[JAVA] 백준 1085 직사각형에서 탈출_기하1

오늘도개발 2023. 3. 6. 16:16

https://www.acmicpc.net/problem/1085

 

1085번: 직사각형에서 탈출

한수는 지금 (x, y)에 있다. 직사각형은 각 변이 좌표축에 평행하고, 왼쪽 아래 꼭짓점은 (0, 0), 오른쪽 위 꼭짓점은 (w, h)에 있다. 직사각형의 경계선까지 가는 거리의 최솟값을 구하는 프로그램

www.acmicpc.net

 

 접근 : 

 

 - 사각형 내부의 점 x, y 좌표를 입력받는다.

 

 - 사각형 끝 지점인 w, h 좌표를 입력받는다.

 

 -   x , y , w - x, h - y 거리 중 가장 짧은 값을 결과로 출력한다. 

 

 

 코드 구현 : 

 

import java.io.*;
import java.util.HashSet;

public class Main {

	public static void main(String[] args) throws IOException {

		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

		String[] input = br.readLine().split(" ");

		int x = Integer.parseInt(input[0]);
		int y = Integer.parseInt(input[1]);
		int w = Integer.parseInt(input[2]);
		int h = Integer.parseInt(input[3]);
		
		// x 에서 0 까지 거리, 	x에서 w 까지 거리중 가까운 거리를 x_distance로 지정
		int x_distance = ((w - x) < x) ? w - x : x;
		
		// y 에서 0 까지 거리, 	y에서 h 까지 거리중 가까운 거리를 y_distance로 지정
		int y_distance = ((h - y) < y) ? h - y : y;
		
		// x_distance, y_distance 중 가까운 거리를 result 로 입력
		int result = (x_distance < y_distance) ? x_distance : y_distance;

		System.out.println(result);
		br.close();
	}
}