백준
[Java] 백준 2448번 - 별 찍기 - 11
효재감자
2024. 4. 23. 14:04
star에 기본틀을 넣어두고, 입력된 N에 맞게 적절히 반복하여 출력해주었다. 반복하면서 star를 갱신해주면 된다.
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
public class P2448 {
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(br.readLine());
List<String> star = new ArrayList<>();
star.add(" * ");
star.add(" * * ");
star.add("*****");
for (int i = 6; i <= N; i *= 2) {
List<String> temp = new ArrayList<>(star);
star = new ArrayList<>();
for (String s : temp) {
star.add(" ".repeat(i / 2) + s + " ".repeat(i / 2));
}
for (String s : temp) {
star.add(s + " " + s);
}
}
for (String s : star) {
System.out.println(s);
}
}
}