728x90
1. 문제 설명
-로 채워진 입력받은 수의 길이의 문자열을 만든 후 선의 길이가 1이 될 때까지 3 등분하고 가운데 문자열은 공백으로 바꾼다.
먼저 char 배열 전체를 공백으로 바꾸고 range가 1이 될때까지 삼등분하면서 재귀 호출하였다.
2. 코드
import java.awt.image.BufferedImageFilter;
import java.io.*;
import java.lang.reflect.Array;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Scanner;
public class Main {
public static char[] list=new char[531441];
public static void main(String[] args) throws IOException {
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw=new BufferedWriter(new OutputStreamWriter(System.out));
String input="";
while((input=br.readLine())!=null){
int num=Integer.parseInt(input);
int new_num= (int) Math.pow(3,num);
for(int i=0;i<new_num;i++)
list[i]=' ';
make(0, new_num-1,new_num);
for(int i=0;i<new_num;i++)
bw.write(list[i]);
bw.newLine();
bw.flush();
}
bw.close();
}
public static void make(int first,int last,int range){
if(range==1)
list[first]='-';
else{
int temp_range=range/3;
make(first,first+temp_range-1,temp_range);
make(last-temp_range+1,last,temp_range);
}
}
}
728x90
'알고리즘' 카테고리의 다른 글
[JAVA]백준 1725번: 히스토그램 (0) | 2021.01.02 |
---|---|
[JAVA]백준 10974번: 모든 순열 (0) | 2021.01.01 |
[JAVA]백준 1037번: 약수 (0) | 2020.12.27 |
[JAVA]백준 11866번: 요세푸스 문제 0 (0) | 2020.12.27 |
[JAVA]백준 2447번: 별 찍기 - 10 (0) | 2020.12.27 |