이 문제는 몇 가지를 고려해야 한다.
1. 왼쪽에 찍히는 공백 수
2. 탑의 가장 아랫부분은 공백없이 모두 출력한다.
3. 가장 아랫부분을 제외한 부분에서는 시작과 끝에만 별을 출력한다.
해당 정보를 갖고 예제 입력을 공백을 채워 그려보면 아래와 같다.
해당 조건을 가지고 for문을 작성하면 아래와 같다.
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(" ");
}
if (i == N) {
for(int j = 0; j < 2 * i - 1; j++) {
sb.append("*");
}
} else {
for(int j = 0; j < 2 * i - 1; j++) {
if(j == 0 || j == 2 * i - 1 - 1) {
sb.append("*");
} else {
sb.append(" ");
}
}
}
sb.append("\n");
}
System.out.println(sb);
}
}