[백준/파이썬] 18414번 X に最も近い値 풀이
업데이트:
문제 정보
- 문제 출처: 백준 온라인 저지
- 문제 링크: 18414번 X に最も近い値
- 문제풀이 코드 GitHub 링크
- 제출 언어: Python 3
- 원문 출처: Olympiad > 일본정보올림피아드 > 일본정보올림피아드 예선 > JOI 2020 예선 1 3-1번
풀이
문제
整数 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인 요소를 출력해주면 됩니다.
댓글남기기