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

U·2023년 3월 21일

백준

목록 보기
32/116

💻 문제


일단 이해하자🤔

  • 직사각형의 꼭짓점들은 (0, 0), (w, 0), (0, h), (w, h)이므로 직사각형의 경계선까지 가는 거리의 최솟값은 x의 길이, y의 길이, |x - w], |y - h| 중 하나다. 이들을 배열에 넣어 for문을 이용해서 가장 작은 값을 구했다. 이때 min의 초깃값은 1000보다 큰 1001로 설정!

👀 풀이

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

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader bfr = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bfw = new BufferedWriter(new OutputStreamWriter(System.out));

        String str = bfr.readLine();
        StringTokenizer st = new StringTokenizer(str, " ");

        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 distance[] = {x, y, Math.abs(w - x), Math.abs(h - y)};
        int min = 1001;

        for(int i = 0; i < 4; i++) {
            if(min > distance[i]) {
                min = distance[i];
            }
        }

        bfw.write(String.valueOf(min));

        bfr.close();
        bfw.flush();
        bfw.close();
    }
}

아쉬웠던 점••

  • 1일 1백준을 실천중인데 아직 문제를 풀지 못해 쉬운 문제를 선택함이 아쉬웠다😅 쉬운 문제는 많지만 내가 성장하려면 생각하게 되는 문제를 풀자.
profile
백엔드 개발자 연습생

0개의 댓글