728x90
몇시간동안 끙끙 앓았네요;
프랙탈구조를 함수로 처리하는 방식인데
너무 어렵게 생각을 했습니다. 혼자서 해결하고 싶었는데
결국 다른 사람 코드를 참조했습니다
http://rightbellboy.tistory.com/39 정리가 매우 잘되있습니다.
작은별하나를 미리 정의된 string문자열에 넣어준 후 (string문자 3개)
이 3개를 가지고 k번만큼 다음 번째 트리만들기를 반복해주면됩니다.
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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 | import java.util.*; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int N=sc.nextInt(); int lineNum; int i,j,h; int kMax; String[] tri=new String[N]; lineNum=0; tri[0]=" * "; tri[1]=" * * "; tri[2]="*****"; kMax=(int)(Math.log(N/3)/Math.log(2)); makeBigTri(kMax,tri); for (String string : tri) { System.out.println(string); } } private static void makeBigTri(int kMax, String[] tri) { int botNum, midNum; int k; for(k=1;k<=kMax;k++) { botNum=(int)(3*Math.pow(2, k)); midNum=botNum/2; for(int i=midNum;i<botNum; i++) { tri[i]=tri[i-midNum]+" "+tri[i-midNum]; } String space = ""; while (space.length() < midNum) { space += " "; } for (int i = 0; i < midNum; ++i) { tri[i] = space + tri[i] + space; } } } } |
'알고리즘 풀이 > 백준' 카테고리의 다른 글
[백준][Java] 10809번 알파벳 찾기 (0) | 2018.04.19 |
---|---|
[백준][Java] 11654번 아스키 코드 (0) | 2018.04.19 |
[백준][Java] 10039번 평균 점수 (2) | 2018.04.19 |
[백준][Java] 2920번 음계 (0) | 2018.04.19 |
[백준][Java] 2577번 숫자의 개수 (0) | 2018.04.19 |