반응형

백준 1085번 문제


풀이


      
import java.util.Arrays;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int x = sc.nextInt(); //(x,y)에 위치
int y = sc.nextInt();
int w = sc.nextInt(); //직사각형 오른쪽 위 꼭지점(w,h)
int h = sc.nextInt();
int[] arr = new int[4];
arr[0] = h-y;
arr[1] = w-x;
arr[2] = y;
arr[3] = x;
Arrays.sort(arr);
System.out.println(arr[0]);
}
}

손그림 풀이
대충 그림으로 그리면 이렇다.

x,y,w,h를 입력하면 x,y 좌표에서 직사각형의 직선에서 가장 가까운 거리를 출력하는 문제다.

나는 (x,y)좌표에서 발생할 수 있는 4가지 경우의 수를 모두 계산한 뒤 그 중 최소값을 구해 출력하는 방식으로 해결했다.

4개의 값을 배열에 넣고 오름차순으로 정렬하게 되면 인덱스 0에 있는 숫자가 제일 작으니까 그걸 출력하는거다.

글로만 보면 이게 무슨 문제람? 할수도 있는데 그림으로 그려보면 쉬운문제이다.

반응형
그레이트현