문제: 예제를 보고 규칙을 유추한 뒤에 별을 찍어 보세요.
입력: 첫째 줄에 N(1 ≤ N ≤ 100)이 주어진다. 출력: 첫째 줄부터 2×N-1번째 줄까지 차례대로 별을 출력한다.
예제입력: 5 예제출력:
*
***
*****
*******
*********
*******
*****
***
*
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int num = Integer.parseInt(br.readLine());
br.close();
StringBuilder sb = new StringBuilder();
for (int i = 1; i <= num; i++) {
for (int j = 1; j <= num-i; j++) {
sb.append(" ");
}
for (int k = 1; k <= 2*i-1; k++) {
sb.append("*");
}
sb.append("\n");
}
for (int i = num-1; i >= 1; i--) {
for (int j = 1; j <= num-i; j++) {
sb.append(" ");
}
for (int k = 1; k <= 2*i-1; k++) {
sb.append("*");
}
sb.append("\n");
}
System.out.print(sb);
}
}
빈칸 n-1개부터 시작해서 n-2.. 0이 됐다가 다시 n-1개가 됨 => n-i 별 2n-1로 늘어났다가 줄어듦
흐름
- Bufferedreader를 사용하여 수(num)을 입력받음
- 상단별 반복 for문 (1부터 num까지 반복) 빈칸 for (1부터 num-i까지 반복) 별 for (1부터 2i-1까지 반복)
- 하단별 반복 for문 (num-1부터 1까지 반복) 빈칸 for (1부터 num-i까지 반복) 별 for (1부터 2i-1까지 반복)