[Java] 백준 1085번 [직사각형에서 탈출] 자바

: ) YOUNG·2021년 12월 29일
2

알고리즘

목록 보기
3/370
post-thumbnail

백준 1085번
https://www.acmicpc.net/problem/1085


문제

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


입력

첫째 줄에 x, y, w, h가 주어진다.


출력

첫째 줄에 문제의 정답을 출력한다.


생각하기

이번문제는 이해와 생각모두 Easy


코드

import java.io.*;

public class Main {
	public static void main(String[] args) throws Exception {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		
		String arr[] = br.readLine().split(" ");
		
		// x, y, w, h는 정수
		int x = Integer.parseInt(arr[0]);
		int y = Integer.parseInt(arr[1]);
		// (x, y)가 현수가 있는 위치
		
		int w = Integer.parseInt(arr[2]);
		int h = Integer.parseInt(arr[3]);
		// (w,h)의 w가 직사각형의 가로길이, h가 직사각형의 세로길이
	
		int row1 = Math.abs(w - x);
		int row2 = Math.abs(0 - x);
	
		int col1 = Math.abs(h - y);
		int col2 = Math.abs(0 - y);
		
		int rowMin = Math.min(row1, row2);
		int colMin = Math.min(col1, col2);
		
		System.out.println(Math.min(rowMin, colMin));
	}
}

0개의 댓글