알고리즘/구현 & 그리디 & 브루트포스

[백준]JAVA - 1085번: 직사각형에서 탈출

K.두부 2022. 9. 26. 21:42
반응형

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

 

1085번: 직사각형에서 탈출

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

www.acmicpc.net

풀이

엄청 쉬운 문제라서 풀이라고 할 것도 없다. 

 

주어진 변수는 총 4개

한수의 위치를 알려주는 x, y

우측 상단 꼭짓점을 알려주는 w, h

 

직사각형의 경계선까지 도달하는 최소 거리는 왼쪽, 오른쪽, 위, 아래 총 4가지이다.

x, y, w-x, y-h의 최솟값을 구하면 된다.

최소값을 구하는 방법은 Math.min 혹은 if-else문을 사용하면 된다.

필자는 Math.min을 사용했다.

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

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 x2 = Math.min(x, w-x);
        int y2 = Math.min(y, h-y);
        int dist = Math.min(x2, y2);
        
        System.out.println(dist);
    }
}

 

 

반응형