BOJ 1085
2020-02-07
위 문제는 백준 사이트의 알고리즘 1085 문제에 관한 설명입니다.
문제
한수는 지금 (x, y)에 있다.
직사각형의 왼쪽 아래 꼭짓점은 (0, 0)에 있고,
오른쪽 위 꼭짓점은 (w, h)에 있다.
직사각형의 경계선까지 가는 거리의 최솟값을 구하는 프로그램을 작성하시오.
입력
첫째 줄에 x y w h가 주어진다.
w와 h는 1,000보다 작거나 같은 자연수이고,
x는 1보다 크거나 같고,
w-1보다 작거나 같은 자연수이고,
y는 1보다 크거나 같고,
h-1보다 작거나 같은 자연수이다.
출력
첫째 줄에 문제의 정답을 출력한다.
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int x = scanner.nextInt();
int y = scanner.nextInt();
int w = scanner.nextInt();
int h = scanner.nextInt();
int array[] = new int[4];
array[0] = x;
array[1] = y;
array[2] = w-x;
array[3] = h-y;
Arrays.sort(array);
System.out.println(array[0]);
}
}
제가 푼 소스코드입니다.
코드 설명
4개의 값을 받은 후 배열 array에 x의 값, y의 값, w-x(전체 width에서 x의 뺀 값), h-y(전체 height에서 y의 뺀 값)을
저장하고 Arrays를 활용해서 정렬시켰습니다.
정렬된 값들중 array[0]에 가장 작은 값이 들어있기 때문에 이를 출력해줍니다.
간단한 문제!