[백준/파이썬] 18414번 X に最も近い値 풀이

업데이트:



문제 정보


풀이

문제

整数 X, L, R が与えられる. L 以上 R 以下の整数のうち,X との差の絶対値が最も小さいものを出力せよ.そのような整数はちょうど 1 つだけ存在することが証明できる.

번역

정수 X, L, R 이 주어진다. L이상 R이하의 정수 중 X의 차이의 절대 값이 가장 작은 것을 출력하라. (그런 정수는 단 하나만 존재하는 것을 증명할 수 있다)

  • 자세한 문제 및 입출력 예제는 상단의 문제 출처(백준 홈페이지)를 참조해주세요

코드

print(sorted(map(int,input().split()))[1])

설명

의외로 트리키하게 풀 수 있는 문제입니다.

세개의 정수 X, L, R을 정렬하면, X는 1번째, 2번째 또는 3번째에 위치할 것입니다.

이 중 유의해야 할 점은, 1번째에 위치하는 경우는 당연하게 L <= X <= R이 성립된다는 것입니다.

경우를 정리해보면,

X가 1번째에 위치한 경우 -> L이 X와 제일 가까운 수, L은 2번재에 위치

X가 2번째에 위치한 경우 -> L <= X <= R, X는 2번째에 위치

X가 3번째에 위치한 경우 -> R이 X와 제일 가까운 수, R은 2번재에 위치

즉, 어떤 경우에도 정답(L이상 R이하의 자연수 중 X와 가장 가까운 수)은 정렬했을 때 2번째에 위치한다는 점을 알 수 있습니다.

따라서, 정렬후 인덱스가 1인 요소를 출력해주면 됩니다.



댓글남기기