본문 바로가기
프로그래밍/백준 알고리즘 코드

백준 1085 자바 직사각형에서 탈출 [기본수학2]

by 졸린이 2021. 5. 6.
반응형

사각형이 있다.

요렇게 생긴 사각형인데 x, y, w, h 를 입력하고 x, y 에서 직사각형의 변 중에 가장 가까운 경계선을 구하는 프로그램을 작성해야 한다.

저 빨간선 중 가장 짧은 거리를 구하면 된다. (삐뚤빼뚤은 ㅈㅅ.. ㅎ)

 

그림상에서 거리로만 보면 위로 향한 선이 가장 최솟값이다. 그 값은 어떻게 찾을 수 있을까? h-y 이다.

 

아주 간단하게 풀 수 있다. 위(h-y) 아래(y) 중 작은값과 오른쪽(w-x) 왼쪽(x) 중 작은값을 비교해서 가장 작은 값을 출력하면 끝이다.

 

width = (w-x) < x ? w-x : x 

이렇게 삼항연산자로 width 작은값 height 작은값을 구해보자.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
import java.util.Scanner;
 
public class Main {
    //baekjoon 0185 직사각형에서 탈출 기본수학2
 
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        
        int x = sc.nextInt();
        int y = sc.nextInt();
        int w = sc.nextInt();
        int h = sc.nextInt();
        
        int widMin = (w-x) < x ? (w-x) : x;
        int heiMin = (h-y) < y ? (h-y) : y;
        
        if(widMin < heiMin)
            System.out.println(widMin);
        else
            System.out.println(heiMin);
    }
}
 
cs
반응형

댓글