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

이정우·2022년 2월 9일
0

백준

목록 보기
29/32

Step 0. 해답 코드

import java.util.Scanner;

public class RectangleEscape {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
            int x = sc.nextInt();
            int y = sc.nextInt();
            int w = sc.nextInt();
            int h = sc.nextInt();
            int dis_x = w - x;
            int dis_y = h - y;
            int x_min = 0;
            int y_min = 0;

            x_min = dis_x > x ? x : dis_x; // 좌우 최소값
            y_min = dis_y > y ? y : dis_y;//상하 최소값

            System.out.println(x_min > y_min ? y_min : x_min);
        }
    }

이번 문제는 x , y좌표에서 최단 거리를 찾는 문제였습니다. 최단 거리는 한수(이름)을 기준으로 상, 하, 좌, 우 총 네 가지 경우가 존재할 수 있습니다.

Step 1. 문제 접근

상, 하, 좌, 우 네 가지 경우를 비교해서 최단 거리(min) 값을 구해주었습니다. 처음에는 min함수를 쓸까 하다가 if문을 써보고자 if문으로 접근하였고 좀 더 코드를 간결하게 하기 위해서 삼항연산자를 사용했습니다.

Step 2. 문제 해결

상하(y) 좌우(x)의 최소값을 구해준 후 해당 값을 프린트 했습니다.

x_min = dis_x > x ? x : dis_x; // 좌우 최소값
y_min = dis_y > y ? y : dis_y;//상하 최소값

System.out.println(x_min > y_min ? y_min : x_min);

Step 3. 느낀 점

문제 자체는 어렵지 않고 쉬운 문제였습니다. 그래서 좀 더 다른 방법으로 문제를 풀어볼려고 했던 거 같습니다. 또한 git도 새로 열었습니다. 코드를 보기 쉽게 앞으로는 git 에도 올릴 생각입니다.

출처 : 백준 1085번 https://www.acmicpc.net/problem/1085

Git 주소 : https://github.com/LeejeongwooKuma/BaekJoon/blob/master/src/com/leejeongwoo/basicmath2/RectangleEscape.java

profile
프로그래밍 공부 중!

0개의 댓글