[백준 BOJ] 1085번 직사각형에서 탈출 (C++/cpp)

2022. 1. 5. 19:02PS (Program Solving)/BOJ (백준)

문제 설명

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

 

1085번: 직사각형에서 탈출

한수는 지금 (x, y)에 있다. 직사각형은 각 변이 좌표축에 평행하고, 왼쪽 아래 꼭짓점은 (0, 0), 오른쪽 위 꼭짓점은 (w, h)에 있다. 직사각형의 경계선까지 가는 거리의 최솟값을 구하는 프로그램

www.acmicpc.net

백준 BOJ 1085번 직사각형에서 탈출 문제 사진
백준 BOJ 1085번 직사각형에서 탈출 문제 사진2

 

접근 방법 - 간단한 수학적 사고 문제

백준의 1085번 문제 또한 단순 수학적 사고력을 요구하는 문제인 것으로 보인다.

필자는 아래의 순서대로 연산을 진행하며 코드를 작성하였다.

 

코드의 실행 순서

1) 각 자연수 4개 입력받기 (임의의 점의 좌표와 (0,0)과 직사각형을 이루는 점의 좌표)

 

2) 가로선 / 세로선 상에서의, 임의의 점과 직사각형 경계선과의 최소 거리를 2개의 임의의 변수에 저장한다.

(a : 가로선 상의 최소 거리 / b : 세로선 상의 최소 거리)

 

3) a와 b 중 더 작은 수를 출력한 뒤, 실행 종료한다.

반응형

 

성공한 코드

#define _CRT_SECURE_NO_WARNINGS
#pragma warning(disable: 4996)
#include <iostream>
using namespace std;

//백준 1085번 코드
int main() {
	int x, y, w, h;
	cin >> x >> y >> w >> h;
	
	int a, b;
	a = x < w - x ? x : w - x;
	b = y < h - y ? y : h - y;
	if (a > b) {
		cout << b;
	}
	else {
		cout << a;
	}
}

 

제출 결과

백준 BOJ 1085번 직사각형에서 탈출 문제 C++ 제출 결과

(2022.01.02 백준 1085번 제출 결과)

반응형