칸토어 집합
면접 대비시간 제한1초메모리 제한128 MB
각 N에 대해 길이 3^N 문자열을 칸토어 집합 규칙으로 출력한다. 크기 3^k 블록의 가운데 1/3은 공백, 나머지는 '-'이다.
문제
칸토어 집합은 0과 1 사이의 실수로 이루어진 집합으로, 구간 에서 시작하여 각 구간을 3등분한 뒤 가운데 구간을 반복적으로 제외하는 방식으로 만든다.
전체 집합이 유한하다고 가정하고, 다음 과정을 통해 칸토어 집합의 근사를 만들어 보자.
-(하이픈) 개로 이루어진 문자열에서 시작한다.- 문자열을 3등분한 뒤, 가운데 부분을 공백으로 바꾼다. 그러면 선(문자열) 2개가 남는다.
- 남은 각 선을 다시 3등분하고 가운데 부분을 공백으로 바꾼다. 이 과정을 모든 선의 길이가 1이 될 때까지 반복한다.
예를 들어 인 경우, 길이가 27인 문자열에서 시작한다.
---------------------------
가운데 부분을 공백으로 바꾼다.
--------- ---------
남은 두 선의 가운데 부분을 공백으로 바꾼다.
--- --- --- ---
한 번 더 반복한다.
- - - - - - - -
모든 선의 길이가 1이 되면 멈춘다. 이 주어졌을 때, 마지막 과정이 끝난 뒤의 결과를 출력하는 프로그램을 작성하시오.
입력
입력은 여러 줄로 이루어진다. 각 줄에는 정수 이 하나씩 주어진다. 입력은 파일의 끝(EOF)에서 끝난다. 은 인 정수이다.
출력
입력으로 주어진 각 에 대해, 해당하는 칸토어 집합의 근사를 한 줄에 하나씩 출력한다.