문제(출처)
예제를 보고 규칙을 유추한 뒤에 별을 찍어 보세요.
입력
첫째 줄에 N이 주어진다. N은 항상 3X2^k 수이다. (3, 6, 12, 24, 48, ...) (k ≤ 10)
출력
예제 입력
24
예제 출력
*
* *
*****
* *
* * * *
***** *****
* *
* * * *
***** *****
* * * *
* * * * * * * *
***** ***** ***** *****
* *
* * * *
***** *****
* * * *
* * * * * * * *
***** ***** ***** *****
* * * *
* * * * * * * *
***** ***** ***** *****
* * * * * * * *
* * * * * * * * * * * * * * * *
***** ***** ***** ***** ***** ***** ***** *****
내 풀이
import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.IOException;import java.io.InputStreamReader;import java.io.OutputStreamWriter;
public class Main { static String[][] arr; static BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); static BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); public static void main(String args[]) {
try { int n = Integer.parseInt(br.readLine()); int len = (n*2)-1;// 0 1 2// 0 1 2 3 4 arr = new String[n][len]; arr = initArr(arr); star(n, (len/2), 0); printCall(arr); bw.flush(); bw.close(); } catch (NumberFormatException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } private static void star(int n, int x, int y) { if(n == 3) { arr[y][x] = "*"; arr[y+1][x-1] = "*"; arr[y+1][x+1] = "*"; arr[y+2][x] = "*"; arr[y+2][x+1] = "*"; arr[y+2][x+2] = "*"; arr[y+2][x-2] = "*"; arr[y+2][x-1] = "*"; return ; } star(n/2, x, y); star(n/2, x - (n/2), y + (n/2)); star(n/2, x + (n/2), y + (n/2)); } private static void printCall(String[][] arr) throws IOException { for(String[] i : arr ) { for(String j : i) { bw.write(j); } bw.newLine(); } } private static String[][] initArr(String[][] arr) { for(int i = 0 ; i < arr.length;i++) { for(int j =0; j < arr[i].length; j++) { arr[i][j] = " "; } } return arr; }}
내 풀이 해석
아쉬운 점
학습/검색
'개발(합니다) > 알고리즘&코테' 카테고리의 다른 글
알고리즘 단계별로 풀어보기 : BOJ-2577(숫자의개수) (0) | 2018.12.20 |
---|---|
알고리즘 단계별로 풀어보기 : BOJ-1152(단어의개수) (0) | 2018.12.20 |
알고리즘 단계별로 풀어보기 : BOJ-1065(한수) (0) | 2018.12.18 |
알고리즘 단계별로 풀어보기 : BOJ-4673(셀프넘버) (0) | 2018.12.17 |
알고리즘 단계별로 풀어보기 : BOJ-1110(더하기싸이클) (0) | 2018.12.16 |