Ballpark Estimate

면접 대비

시간 제한2초메모리 제한512 MB

요약
1e18 이하의 n이 주어질 때, 0이 아닌 숫자가 하나뿐인 수 중 n에 가장 가까운 값을 출력하고, 거리가 같으면 더 큰 값을 출력한다.
난이도

보통10점 중 5점

유형
수학, 구현, 그리디, 완전 탐색
정답자
아직 제출이 없습니다

문제

효율적인 의사소통에는 적절한 수준의 세부 사항을 전달하는 능력이 중요하다. 때로는 큰 흐름만 알면 충분하다.

예를 들어, 누군가 숫자를 물어볼 때는 보통 어림값만 원한다. 값이 수백만 단위라면 정확한 백의 자리와 십의 자리까지 알 필요가 없다. 마찬가지로 값이 수십억 단위라면 수백만 같은 작은 부분까지 신경 쓰지 않는다.

그림 B.1: 어림값과 실제 값을 로그 차트로 나타낸 그림.

(매우 클 수도 있는) 숫자 n이 주어질 때, 뒤따르는 0을 제외하고 숫자가 하나뿐인 표현 중 n에 수치적으로 가장 가까운 것을 출력한다.

숫자 n에 대한 표현 r의 가까움은 abs(r − n)으로 정의한다.

입력

입력은 다음과 같다.

  • 양의 정수 n이 한 줄에 주어진다. (1 ≤ n ≤ 1018)

출력

n에 가장 가까운, 유효한(0이 아닌) 숫자가 정확히 하나인 수를 출력한다. 똑같이 가까운 답이 두 개라면 더 큰 쪽을 출력한다.

예제3

  1. 예제 1

    입력
    150
    
    예상 출력
    200
    
  2. 예제 2

    입력
    4
    
    예상 출력
    4
    
  3. 예제 3

    입력
    33471234512345
    
    예상 출력
    30000000000000