이 문제는 공백과 별을 나누어 생각하면 된다.
먼저 공백을 위에서부터 보자면 예제입력 5를 기준으로
4,3,2,1,0 순으로 줄어든다.
다음으로 별의 숫자를 위에서부터 보자면
1,3,5,7,9 즉, 홀수 만큼 증가하고 있다.
위에 예제를 for loop에서 코드로 보자면 for은 1 부터 N보다 작거나 같을때 까지 순회할 것이다.
여기서 0이 아닌 1인 이유는 아래에서 별을 찍을 때 알 수 있다.
다음으로 공백은 4,3,2,1,0 즉, 초기값은 N이며, i보다 클 때까지 루프를 돌면서 공백을 추가할것이다.
마지막으로 별의 숫자이다. 공백을 추가했다면, 별은 초기값은 1, 조건은 (2 * i) - 1 까지 돌면서 별을 찍을것이다.
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 N = Integer.parseInt(br.readLine());
StringBuilder sb = new StringBuilder();
for(int i = 1; i <= N; i++) {
for(int j = N; j > i; j--) {
sb.append(" ");
}
for(int j = 0; j < 2 * i - 1; j++) {
sb.append("*");
}
sb.append("\n");
}
System.out.println(sb);
}
}
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(br.readLine());
StringBuilder sb = new StringBuilder();
for(int i = 1; i <= N; i++) {
for(int j = N; j > i; j--) {
sb.append(" ");
}
for(int j = 0; j < 2 * i - 1; j++) {
sb.append("*");
}
sb.append("\n");
}
System.out.println(sb);