본문 바로가기
PS 문제 풀이/Baekjoon

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

by 까망 하르방 2021. 8. 25.
반응형

출처https://www.acmicpc.net/problem/1085

Approach

직사각형 내부에서 경계선으로 가는 최단거리가 무엇일지 알면

쉽게 구현할 수 있는 문제이다.

 

좌표 (x, y)가 주어졌을 때

상 / 하 / 좌 / 우 움직여서 그 중 최소 거리를 구하면 된다.

상: h - y

하: y

좌: x

우: w - x


C++

#include <stdio.h>

inline int min(int A, int B) { return A < B ? A : B; }
int x, y, w, h, ans;

int main(void)
{
    // freopen("input.txt", "r", stdin);
    scanf("%d %d %d %d", &x, &y, &w, &h);
    
    ans = min(min(w - x, x), min(h - y, y));
    printf("%d\n", ans);
}

 

Java

import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int x,y, w,h;
		x = sc.nextInt();
		y = sc.nextInt();
		w = sc.nextInt();
		h = sc.nextInt();
		
		int t1 = w-x;
		int t2 = h-y;
		if(t1 > x){    //사각형이므로 모서리 4개에 대한 경우의 수를 살핀다.
			t1 = x;
		}
		if(t2 > y){
			t2 = y;
		}
		if(t1 < t2){
			System.out.println(t1);
		}else{
			System.out.println(t2);
		}
		
	}
}
반응형

'PS 문제 풀이 > Baekjoon' 카테고리의 다른 글

[BOJ] 백준 1152 단어의 개수  (0) 2021.08.27
[BOJ] 백준 1094 막대기  (0) 2021.08.26
[BOJ] 백준 1037 약수  (0) 2021.08.24
[BOJ] 백준 1032 명령 프롬프트  (0) 2021.08.23
[BOJ] 백준 1026 보물  (0) 2021.08.22

댓글