문제 설명

1. 문제에서 제시하는 모양으로 별을 찍으면 된다.
2. 풀고나서 생각난건데 character 배열에 하면 두 삼각형을 겹쳐서 만들고 출력해줘도 됐을 것 같다.

풀이

1. 위의 삼각형은 꼭짓점 하나를 없애고 출력한다.
2. 밑의 삼각형은 꼭짓점이 3 개 다 있는 상태로 출력한다.
3. 위의 삼각형은 (N - i) * 2 + 1 개 별을 출력
4. 밑의 삼각형은 (i - 1)* 2 + 1 개의 별을 출력
5. i 는 시작줄의 개수 1부터 시작

코드

import java.util.*;
import java.io.*;
/**
* https://www.acmicpc.net/problem/2446
* BOJ 백준온라인져지 2446 별찍기 - 9 풀이
*/
public class Main {
private static BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
public static void main(String args[]) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(br.readLine());
for (int i = 1; i < N; i++) {
for (int j = 1; j < i; j++) bw.write(" ");
for (int j = 0; j < (N - i) * 2 + 1; j++) bw.write("*");
bw.write("\n");
}
for (int i = 0; i < N; i++) {
for (int j = 1; j < N - i; j++) bw.write(" ");
for (int j = 0; j < i * 2 + 1; j++) bw.write("*");
bw.write("\n");
}
bw.flush();
}
}
view raw Main.java hosted with ❤ by GitHub


문제

예제를 보고 별찍는 규칙을 유추한 뒤에 별을 찍어 보세요.

입력

첫째 줄에 N (1<=N<=100)이 주어진다.

출력

첫째 줄부터 2*N-1번째 줄 까지 차례대로 별을 출력한다.

예제 입력 1 

5

예제 출력 1 

*********
 *******
  *****
   ***
    *
   ***
  *****
 *******
*********

출처


+ Recent posts