Jun's Development Journey
[BOJ] 4779번 칸토어 집합 본문
문제
4779번: 칸토어 집합
칸토어 집합은 0과 1사이의 실수로 이루어진 집합으로, 구간 [0, 1]에서 시작해서 각 구간을 3등분하여 가운데 구간을 반복적으로 제외하는 방식으로 만든다. 전체 집합이 유한이라고 가정하고,
www.acmicpc.net
풀이
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.*;
import java.util.StringTokenizer;
import java.util.Map.*;
public class BOJ_4779 {
static char[] arr;
static void makeString(int first, int last, int len){
if(len==1){
arr[first] = '-';
return;
}
int tmp_len = len/3;
makeString(first,first+tmp_len-1,tmp_len);
makeString(last-tmp_len+1,last,tmp_len);
}
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
StringBuilder sb = new StringBuilder();
//StringTokenizer st = new StringTokenizer(br.readLine());
String tmp;
while((tmp = br.readLine())!=null){
int N = (int)Math.pow(3,Integer.parseInt(tmp));
arr = new char[N];
for(int i=0;i<N;i++)
arr[i] = ' ';
makeString(0,N-1,N);
for(char ch:arr)
bw.write(ch);
bw.newLine();
bw.flush();
}
System.out.println(sb);
}
}
'BOJ > Division-Conquer' 카테고리의 다른 글
[BOJ] 2630 색종이 만들기 (0) | 2021.03.12 |
---|---|
[Practice] 합병 정렬 (0) | 2021.03.11 |