반응형
https://www.acmicpc.net/problem/1085
- 문제
- 문제 풀이
백준 1085번 직사각형에서 탈출은 브론즈 3 난이도의 수학 및 기하학 문제이다. 이 문제에서는 왼쪽 아래 꼭짓점 (0,0)과 오른쪽 위 꼭짓점이 (w, h)인 직사각형이 하나 있다. 그리고 한수는 이 직사각형 안에 (x, y)점에 위치해 있다. 이때 한수가 직사각형 경계선까지 가는 거리의 최솟값을 출력하면 된다.
처음에 이 문제를 읽고 보면 조금 어렵게 느껴질 수도 있다. 하지만 이 문제는 간단하다. 이 문제의 상황은 밑에 있는 그림과 같다.
파란색의 직사각형이 있고 그 직사각형 안에 점 (x, y)가 있다. 이때 경계선과 가장 가까운 거리를 구하면 된다. 즉, 이 점에서 직각으로 이동했을 때 최소의 거리를 구하기만 하면 된다는 것이다. 그림으로 표현하면 다음과 같다.
이 거리들은 그림에 나와있는 것처럼 w, h, h - y, w - x이다. 따라서 이 값들의 최솟값을 출력하기만 하면 되는 문제이다.
자세한 코드는 밑에 있다.
- 코드
import java.io.*;
import java.util.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
// x, y, w, h 입력 받기
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 min = Integer.MAX_VALUE;
min = Math.min(min, Math.min(x, w-x));
min = Math.min(min, Math.min (y, h-y));
System.out.print(min);
}
}
반응형
'백준' 카테고리의 다른 글
[백준] 1929번 : 소수 구하기 – JAVA [자바] (0) | 2022.07.15 |
---|---|
[백준] 1193번 : 분수찾기 – JAVA [자바] (0) | 2022.07.13 |
[백준] 2231번 : 분해합 – JAVA [자바] (0) | 2022.07.12 |
[백준] 11399번 : ATM – JAVA [자바] (0) | 2022.07.11 |
[백준] 1003번 : 피보나치 함수 – JAVA [자바] (0) | 2022.07.11 |
댓글