본문 바로가기
⛓ 자료구조

백준 1085, 직사각형에서 탈출 (자바/java)

by 비타민찌 2022. 4. 6.
728x90

백준 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는 정수

 

 

[풀이]

한수의 위치(x,y)에서

직사각형 오른쪽 위 꼭짓점의 위치인(w,h)이 있을 때

한수가 직사각형에서 탈출할 수 있는 최단거리를 구하는 문제다.

좌표들을 비교해서 가장 짧은 것을 찾으면 된다.

if 문으로도 해결할 수 있고

자바 Math.min() 메소드로도 해결 가능하다.

 

public class Test {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st = new StringTokenizer(br.readLine()," ");

        int x = Integer.parseInt(st.nextToken());
        int y = Integer.parseInt(st.nextToken());
        int w = Integer.parseInt(st.nextToken());
        int h = Integer.parseInt(st.nextToken());

        int xMin = Math.min(x,w-x);
        int yMin = Math.min(y,h-y);

        System.out.println(Math.min(xMin, yMin));
    }
}
 
728x90

댓글