import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
int n = Integer.parseInt(br.readLine());
for (int i = 1; i <= 2 * n - 1; i++) {
if (i <= n) {
for (int j = 1; j <= n - i; j++) {
bw.write(" ");
}
for (int j = 1; j <= 2 * i - 1; j++) {
bw.write("*");
}
}
else {
for (int j = 1; j <= i % n; j++) {
bw.write(" ");
}
for (int j = 1; j <= (2 * n - 1) - 2 * (i % n); j++) {
bw.write("*");
}
}
bw.write("\n");
}
bw.flush();
}
}
저는 이번 문제를 풀기 위해
몇 번째 줄인지 저장해두는 변수인 i
가 입력받은 변수 n
보다
값이 작은 지, 큰 지를 두고 if문
으로 분기하여 풀어보았습니다.
그리고 i
가 n
보다 커졌을 때는 (i % n)
번째 줄로 다시 계산하도록 했습니다.
즉, n = 5
일 때 6번째 줄
부터는 다시 첫 번째 줄
로 보고 i가 n보다 작을 때
와는 반대로 별을 찍도록 한 것입니다.
이게 무슨 말인지..
말로 정리하기가 쉽지 않네요..
이상입니다.