한수는 지금 (x, y)에 있다. 직사각형의 왼쪽 아래 꼭짓점은 (0, 0)에 있고, 오른쪽 위 꼭짓점은 (w, h)에 있다. 직사각형의 경계선까지 가는 거리의 최솟값을 구하는 프로그램을 작성하시오.
첫째 줄에 x, y, w, h가 주어진다.
첫째 줄에 문제의 정답을 출력한다.
1 ≤ w, h ≤ 1,000
1 ≤ x ≤ w-1
1 ≤ y ≤ h-1
x, y, w, h는 정수
6 2 10 3
1
BufferedReader
와 BufferedWriter
를 사용하였고, 인덱스가 필요없기 때문에 StringTokenizer
를 사용해 바로 변수에 저장했다.shortW
에서 넣었다.shortH
에 넣었다. 그런 뒤 shortW
와 shortH
를 비교해 더 작은 값을 출력시켰다.import java.io.*;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
StringTokenizer st = new StringTokenizer(br.readLine());
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 shortW, shortH;
if (x < (w - x)) {
shortW = x;
} else {
shortW = w - x;
}
if (y < (h - y)) {
shortH = y;
} else {
shortH = h - y;
}
if (shortH < shortW) {
bw.write(Integer.toString(shortH));
} else {
bw.write(Integer.toString(shortW));
}
bw.flush();
}
}