Notice
Recent Posts
Recent Comments
«   2026/02   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
Archives
Today
Total
관리 메뉴

나의 코딩기록

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

코테_JAVA

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

늘진 2024. 9. 16. 16:56

링크 - https://www.acmicpc.net/problem/1085

문제

한수는 지금 (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는 정수
코드
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
import java.util.StringTokenizer;

public class Main {
    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 a = w-x;
        int b = h-y;

        if ( a<= b && a<=x && a<= y){
            System.out.println(a);
        }
        else if ( b<a && b<=x && b<=y){
            System.out.println(b);
        }
        else if ( x<a && x<b && x<= y){
            System.out.println(x);
        }
        else if ( y<a && y<b && y<x){
            System.out.println(y);
        }

        br.close();
    }
}

 

결과

 


 

모르는 게 있으면 댓글 달아주세요 :)