[백준알고리즘] 1085번 직사각형에서 탈출
2024. 1. 17. 08:40ㆍ백준알고리즘/수학
728x90
문제출처 : https://www.acmicpc.net/problem/1085
알고리즘 분류 : 수학
언어: JAVA
문제
몰랐던 점
- 일단 좌표간 거리를 구하는 방법을 알수 없어서 검색해봄
접근
- (x,y)좌표가 주어졌을 때 (w,h)좌표 경계선까지의 최솟값
- XX: x (수평 0부터 x까지의 거리)
- YY: y (수직 0부터 y까지의 거리)
- WX: w-x ( x부터 w까지 수평 거리)
- HY: h-y ( y부터 h까지 수직 거리)
- XX, YY, WX, HY 중 최솟값을 구하는 문제
코드
package org.example.question.수학;
import java.util.Arrays;
import java.util.Scanner;
/*
* 문제: 한수는 지금 (x, y)에 있다.
* 직사각형은 각 변이 좌표축에 평행하고, 왼쪽 아래 꼭짓점은 (0, 0), 오른쪽 위 꼭짓점은 (w, h)에 있다.
* 직사각형의 경계선까지 가는 거리의 최솟값을 구하는 프로그램을 작성하시오.
* 입력: 첫째 줄에 x, y, w, h가 주어진다.
* 출력: 첫째 줄에 문제의 정답을 출력한다.
* */
public class Q1085 {
public static void main(String[] args) {
//(x,y) 좌표에서 (w,h)좌표의 경계선까지 최솟값
//[WX] x부터 w경계선 까지 수평(가로)거리 :: (w-x)
//[HX] y부터 h경계선 까지 수직(세로)거리 :: (h-x)
// [X] 와 [Y] 중 최솟값을 출력
Scanner sc = new Scanner(System.in);
int x = sc.nextInt();
int y = sc.nextInt();
int w = sc.nextInt();
int h = sc.nextInt();
int XX = x;
int YY = y;
int WX = w - x;
int HX = h - y;
int[] intArr = new int[]{XX, YY, WX, HX};
int rslt = Arrays.stream(intArr).min().getAsInt();
System.out.println(rslt);
}
}
728x90
'백준알고리즘 > 수학' 카테고리의 다른 글
[백준알고리즘] 1193번 직사각형에서 탈출 (2) | 2024.01.19 |
---|---|
[백준알고리즘] 10250번 ACM 호텔 (0) | 2024.01.16 |