아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

공백이 사라진 순열

면접 대비

시간 제한1초메모리 제한256 MB

요약
이어 붙인 숫자 문자열을 1부터 N까지 순열로 나누고 사전 순으로 가장 앞선 경우를 복원합니다.
난이도

보통10점 중 5점

유형
백트래킹, 완전 탐색, 문자열
정답자
아직 제출이 없습니다

문제

11부터 NN까지의 수를 한 번씩 쓴 순열을 십진수로 적고, 이웃한 두 수 사이에 공백을 하나씩 넣어 파일에 저장했다. 그런데 누군가 그 파일의 공백을 모두 지워서, 이제 숫자만 길게 이어진 한 줄이 남았다.

공백을 되살려 순열을 복원하라.

입력

첫째 줄에 공백이 모두 지워진 숫자열이 주어진다.

이 숫자열은 11부터 NN까지의 수로 이루어진 순열을 앞에서부터 이어 붙인 것이고, NN은 11 이상 5050 이하이다. NN은 따로 주어지지 않는다. 주어진 숫자열은 항상 복원할 수 있다.

출력

복원한 순열을 한 줄에 출력한다. 이웃한 두 수 사이에는 공백을 하나 넣는다. 공백을 잊으면 안 된다.

복원한 순열이 여러 가지인 경우, 두 순열을 앞에서부터 수 하나씩 비교해서 처음으로 달라지는 자리의 수가 더 작은 쪽을 출력한다. 즉 올바른 순열 중 사전순으로 가장 앞서는 하나를 출력한다.

예제3

  1. 예제 1

    입력
    4111109876532
    
    예상 출력
    4 1 11 10 9 8 7 6 5 3 2
    
  2. 예제 2

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

    입력
    12345678910
    
    예상 출력
    1 2 3 4 5 6 7 8 9 10