Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 클라이언트
- 백준
- 프로그래머스 풀이
- java
- 큐
- lv2
- 스프링부트 도커
- 자바
- 오름차순 정렬
- 삼각형의 완성조건
- 문자열
- 프로그래머스 자바
- 버퍼
- 프로그래머스
- 스프링부트 도커 배포
- 백준 N과 M 자바
- COS Pro
- 이진수 변환
- Programmers
- Stack
- StringTokenizer
- Queue
- 스프링부트 도커로 배포
- Lv1
- lv0
- 알고리즘
- SWEA
- 스택
- index of
- 프로그래머스 문자열 정렬
Archives
- Today
- Total
mun dev
[백준] 4779 칸토어 집합 자바(Java) 본문
문제설명
칸토어 집합은 0과 1사이의 실수로 이루어진 집합으로, 구간 [0, 1]에서 시작해서 각 구간을 3등분하여 가운데 구간을 반복적으로 제외하는 방식으로 만든다.
전체 집합이 유한이라고 가정하고, 다음과 같은 과정을 통해서 칸토어 집합의 근사를 만들어보자.
1. -가 3N개 있는 문자열에서 시작한다.
2. 문자열을 3등분 한 뒤, 가운데 문자열을 공백으로 바꾼다. 이렇게 하면, 선(문자열) 2개가 남는다.
3. 이제 각 선(문자열)을 3등분 하고, 가운데 문자열을 공백으로 바꾼다. 이 과정은 모든 선의 길이가 1일때 까지 계속 한다.
예를 들어, N=3인 경우, 길이가 27인 문자열로 시작한다.
---------------------------
여기서 가운데 문자열을 공백으로 바꾼다.
--------- ---------
남은 두 선의 가운데 문자열을 공백으로 바꾼다.
--- --- --- ---
한번 더
- - - - - - - -
모든 선의 길이가 1이면 멈춘다. N이 주어졌을 때, 마지막 과정이 끝난 후 결과를 출력하는 프로그램을 작성하시오.
입력
입력을 여러 줄로 이루어져 있다. 각 줄에 N이 주어진다. 파일의 끝에서 입력을 멈춘다. N은 0보다 크거나 같고, 12보다 작거나 같은 정수이다.
출력
입력으로 주어진 N에 대해서, 해당하는 칸토어 집합의 근사를 출력한다.
통과한 코드 ✅
import java.io.*;
public class Main {
static StringBuilder sb;
public static void main(String[] args) throws IOException {
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
String str;
while ((str=br.readLine())!=null){
int n=Integer.parseInt(str);
int line=(int)Math.pow(3,n);
sb=new StringBuilder();
for(int i=0; i<line; i++){
sb.append("-");
}
func(0,line);
System.out.println(sb);
}
}
public static void func(int start, int len){
if(len==1){
return;
}
int size=len/3;
for(int i=start+size; i<start+2*size; i++){
sb.setCharAt(i,' ');
}
func(start,size);
func(start+2*size, size);
}
}
'알고리즘 > 백준' 카테고리의 다른 글
[백준] 17103 골드바흐 파티션 자바(Java) (0) | 2023.07.21 |
---|---|
[백준] 1874 스택 수열 자바(Java) (0) | 2023.07.21 |
[백준] 4949 균형잡힌 세상 자바(Java) (0) | 2023.07.18 |
[백준] 1620 나는야 포켓몬 마스터 이다솜 자바(Java) (0) | 2023.07.14 |
[백준] 1929 소수 구하기 자바(Java) (0) | 2023.07.08 |