문제 >
한수는 지금 (x, y)에 있다. 직사각형의 왼쪽 아래 꼭짓점은 (0, 0)에 있고, 오른쪽 위 꼭짓점은 (w, h)에 있다. 직사각형의 경계선까지 가는 거리의 최솟값을 구하는 프로그램을 작성하시오.
입력 >
첫째 줄에 x y w h가 주어진다. w와 h는 1,000보다 작거나 같은 자연수이고, x는 1보다 크거나 같고, w-1보다 작거나 같은 자연수이고, y는 1보다 크거나 같고, h-1보다 작거나 같은 자연수이다.
출력 >
첫째 줄에 문제의 정답을 출력한다.
해결방법 >
현재 위치에서 각 경계선까지의 거리 중에 최소 거리를 구한다.(x, y, w-x, h-y)
C++
#include <iostream>
#include <algorithm>
using namespace std;
int main(){
int d[4];
int w, h;
cin >> d[0] >> d[1] >> w >> h;
d[2] = w - d[0];
d[3] = h - d[1];
sort(d, d + 4);
cout << d[0] << '\n';
}
JAVA
package baekjoon;
import java.util.*;
public class BOJ_1085 {
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 dx = (x < w - x) ? x : w - x;
int dy = (y < h - y) ? y : h - y;
int d = (dx < dy) ? dx : dy;
System.out.println(d);
}
}
문제링크 >
https://www.acmicpc.net/problem/1085
1085번: 직사각형에서 탈출
첫째 줄에 x y w h가 주어진다. w와 h는 1,000보다 작거나 같은 자연수이고, x는 1보다 크거나 같고, w-1보다 작거나 같은 자연수이고, y는 1보다 크거나 같고, h-1보다 작거나 같은 자연수이다.
www.acmicpc.net
'Problem Solving > BOJ' 카테고리의 다른 글
[백준] 1712번 - 손익분기점 (0) | 2020.01.07 |
---|---|
[백준] 1427번 - 소트인사이드 (0) | 2020.01.07 |
[백준] 1193번 - 분수찾기 (0) | 2020.01.07 |
[백준] 1181번 - 단어 정렬 (0) | 2020.01.07 |
[백준] 1026번 - 보물 (0) | 2020.01.07 |
댓글