이 문제도 2개의 영역으로 나누어 보면 된다.
위에 영역은 입력받은 N만큼 순회하고 [1 ~ N]
아래는 N - 1만큼 순회하며 출력하면 된다. [1 ~ N -1]
윗 값은 공백은 점차 줄어들고 별은 점자 층가한다.
가장 바깥 for문은 i부터 N까지 돌며 내부 공백을 찍는 for문은
초기값은 N이고, i보다 작을 때 까지 찍으며, 별은 초기값은0 i보다 작을 때 까지 찍으면된다.
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 < i; j++) {
sb.append("*");
}
sb.append("\n");
}
for(int i = 1; i < N; i++) {
for(int j = 0; j < i; j++) {
sb.append(" ");
}
for(int j = N - 1; j >= i; j--) {
sb.append("*");
}
sb.append("\n");
}
System.out.println(sb);
}
}
for(int i = 1; i <= N; i++) {
for(int j = N ; j > i; j--) {
sb.append(" ");
}
for(int j = 0; j < i; j++) {
sb.append("*");
}
sb.append("\n");
}
아래영역은 N - 1 만큼 순회하며 공백이 점차증가하고 별은 점차 감소한다.
for(int i = 1; i < N; i++) {
for(int j = 0; j < i; j++) {
sb.append(" ");
}
for(int j = N - 1; j >= i; j--) {
sb.append("*");
}
sb.append("\n");
}
System.out.println(sb);