본문 바로가기
Problem Solving/BOJ

[백준] 1085번 - 직사각형에서 탈출

by 테리는당근을좋아해 2020. 1. 7.

문제 >

한수는 지금 (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

댓글