별 찍기 문제이며 아래와 같이 풀었다.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(bf.readLine());
for (int i = 1; i <= n; i++) {
//공백
for (int j = 1; j <= n - i; j++) {
System.out.print(" ");
}
//별
for (int j = 1; j <= 2 * i - 1; j++) { // 홀 수 구하는 로직
System.out.print("*");
}
System.out.println();
}
for (int i = n - 1; i >= 1; i--) {
//공백
for (int j = 1; j <= n - i; j++) {
System.out.print(" ");
}
//별
for (int j = 1; j <= 2 * i - 1; j++) {
System.out.print("*");
}
System.out.println();
}
}
}
특히 별찍기 문제가 어려운 거 같다. 이해하기보다 먼저 로직을 여러번 해보며 익히면 좋을 거 같다.
별을 찍을 때 무조건 홀수 단위로 찍게 되는데 이 특징 때문에 2n-1
을 사용함을 알게 되었다.