코테/백준

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

imname1am 2023. 3. 29. 11:39
반응형

🔺 문제

 

1085번: 직사각형에서 탈출

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

www.acmicpc.net

 

🔺 코드

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 min = Math.min(w-x, h-y);

        if(min > Math.min(x, y)) {
            min = Math.min(x, y);
        }

        System.out.println(min);
    }
}
✅ 해결 아이디어
- 일단 거리의 최솟값 min을 오른쪽 위 꼭짓점 w,h에서 x,y를 뺀 값으로 설정
- 이 값이 x나 y 중 작은 값(Math.min(x, y))과 원점 (0,0)으로부터의 거리보다 크다면 min 값 변경

 

🔺 다른 풀이들

 

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

https://www.acmicpc.net/problem/1085 1085번: 직사각형에서 탈출 첫째 줄에 x y w h가 주어진다. w와 h는 1,000보다 작거나 같은 자연수이고, x는 1보다 크거나 같고, w-1보다 작거나 같은 자연수이고, y는 1보다

st-lab.tistory.com

내가 15-19번째 줄까지 쓴 코드를 더 짧게 축약 가능!

x축 최소거리를 구할 때, Math.min(x, w-x);로 구하고 y축 최소거리도 이렇게 구하심.

 

거기다가 x축 최소거리 vs y축 최소거리 해서 더 작은 값 반환

반응형