반응형
출처: 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 |
댓글