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좌표에서 최단 거리를 찾는 문제였습니다. 최단 거리는 한수(이름)을 기준으로 상, 하, 좌, 우 총 네 가지 경우가 존재할 수 있습니다.
상, 하, 좌, 우 네 가지 경우를 비교해서 최단 거리(min) 값을 구해주었습니다. 처음에는 min함수를 쓸까 하다가 if문을 써보고자 if문으로 접근하였고 좀 더 코드를 간결하게 하기 위해서 삼항연산자를 사용했습니다.
상하(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);
문제 자체는 어렵지 않고 쉬운 문제였습니다. 그래서 좀 더 다른 방법으로 문제를 풀어볼려고 했던 거 같습니다. 또한 git도 새로 열었습니다. 코드를 보기 쉽게 앞으로는 git 에도 올릴 생각입니다.
출처 : 백준 1085번 https://www.acmicpc.net/problem/1085