
난이도: ★☆☆☆☆ • solved on: 2025-07-18

자료구조
int): 좌표와 너비/높이 값 저장알고리즘/기법
Math.min() 사용핵심 키워드
- 문제 분해
- (x, y)에서 직사각형 경계까지의 거리는 총 4가지 경우:
- 왼쪽: x
- 오른쪽: w - x
- 아래쪽: y
- 위쪽: h - y
- 이 중 가장 짧은 거리를 출력하면 된다.
- 핵심 로직 흐름
입력: x, y, w, h 왼쪽 거리 = x 오른쪽 거리 = w - x 아래쪽 거리 = y 위쪽 거리 = h - y minX = Math.min(x, w - x) minY = Math.min(y, h - y)- 예외 처리
- 없음 (모든 값은 1 이상 1,000 이하이므로 일반적인 조건 처리만 하면 됨)
import java.io.*;
class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String[] list = br.readLine().split(" ");
int x = Integer.parseInt(list[0]);
int y = Integer.parseInt(list[1]);
int w = Integer.parseInt(list[2]);
int h = Integer.parseInt(list[3]);
int minX = Math.min(x, w - x);
int minY = Math.min(y, h - y);
if (minX < minY) {
System.out.println(minX);
} else {
System.out.println(minY);
}
}
}
toCharArray() 를 사용하는 습관 때문에, 공백이 포함된 문자열에서 오작동이 발생했다. 이번 문제에서는 split(" ") 으로 공백 기준 분리하는 것이 적절했다.toCharArray() vs split() 을 적절히 선택해야 한다.Math.min() 을 중첩 사용하면 간단하게 여러 값 중 최소를 구할 수 있다.비슷한 유형 (GPT 추천) :
확장 문제 (GPT 추천) :