반응형
별 찍기 - 8https://www.acmicpc.net/problem/2445
- 문제
- 문제 풀이
백준 2445번 별 찍기 - 8는 브론즈 3 난이도의 구현 문제이다. 이 문제에서도 마찬가지로 예제에서 패턴이 주어지고 패턴에 나와있는 것처럼 별을 출력해주면 된다.
이 문제도 이중 for-loop을 이용해서 푼다. 우선 바깥 for-loop은 i = 1부터 시작하고 i = n까지이다.
그리고 패턴을 보면 *이 i개만큼 양 끝에 있고 가운데에는 2n - 2i개만큼의 스페이스가 있다. 이거를 n번 반복한다.
그렇게 하면 일단 n이 5일 때, 다음과 같은 결과를 얻는다.
* *
** **
*** ***
**** ****
**********
그다음에는 새로운 이중 for-loop을 만들어준다. 이번 경우에는 바깥 for-loop에서는 i가 n-1에서 시작하고 i = 1이 되면 멈춘다.
그리고 별이 i개만큼이 양 끝에 있고 가운데에는 2n - 2i개만큼의 스페이스가 있다. 이 과정을 반복해주면 답을 얻을 수 있다.
- 코드
import java.io.*;
import java.math.BigInteger;
import java.util.*;
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 = 1; j <= i; j++) {
sb.append("*");
}
for (int j = 1; j <= 2*n-2*i; j++) {
sb.append(" ");
}
for (int j = 1; j <= i; j++) {
sb.append("*");
}
sb.append("\n");
}
for (int i = n-1; i >= 1; i--) {
for (int j = 1; j <= i; j++) {
sb.append("*");
}
for (int j = 1; j <= 2*n-2*i; j++) {
sb.append(" ");
}
for (int j = 1; j <= i; j++) {
sb.append("*");
}
sb.append("\n");
}
System.out.print(sb);
}
}
- 후기
이 별 찍기 문제도 마찬가지로 크게 어려운 거는 없었다.
반응형
'백준' 카테고리의 다른 글
[백준] 14607번 : 피자 (Large) – JAVA [자바] (0) | 2022.04.22 |
---|---|
[백준] 1302번 : 베스트셀러 – JAVA [자바] (0) | 2022.04.22 |
[백준] 13458번 : 시험 감독 – JAVA [자바] (0) | 2022.04.22 |
[백준] 10988번 : 팰린드롬인지 확인하기 – JAVA [자바] (1) | 2022.04.21 |
[백준] 17219번 : 비밀번호 찾기 – JAVA [자바] (0) | 2022.04.21 |
댓글