최대 1 분 소요

1. 문제

[Bronze III] 직사각형에서 탈출 - 1085

문제 링크

성능 요약

메모리: 30864 KB, 시간: 68 ms

분류

기하학(geometry), 수학(math)

문제 설명

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

입력

첫째 줄에 x, y, w, h가 주어진다.

출력

첫째 줄에 문제의 정답을 출력한다.

출처: 백준, https://https://www.acmicpc.net/

2. 해결방법 시간복잡도

  1. 단순 코딩 O(1)

3. 문제 해결 및 코드


  • 주석을 참고하면서 이해를 돕습니다.

4. 알고리즘 및 해설

  1. 한수의 x, y값과 w, h값을 모두 받는다.
  2. 이때 길이는 양수이므로 오른쪽 꼭지값의 x값, y값(왼쪽 아래보다 크므로) - 왼쪽 아래 꼭지값의 x값, y값을 구한다.
  3. 이후 x값과 y값에 절대값을 붙여 양수로 변환한다.
  4. if문을 통해 경우의 수를 계산하여 답을 도출한다.

5. 짚고 넘어가기

  1. abs()함수를 통해 보다 쉽게 절대값으로 바꿀 수 있다.