반응형
https://www.acmicpc.net/problem/2522
- 문제
- 문제 풀이
백준 2522번 별 찍기 - 12는 브론즈 3 난이도의 구현 문제이다. 이 문제에서도 n이 주어지고 예제에 나와있는 패턴처럼 출력해주면 되는 문제이다.
우선 예제를 보겠다. n이 3이고 별이 1개에서 시작해서 3개를 찍고 다시 1개로 내려온다.
즉, 처음에 스페이스가 n - 1개에서 시작한다. 그리고 별은 1개에서 시작해서 우선 n개가 된다.
이중 for-loop을 써서 이 문제를 푸는데 바깥 for-loop은 i = 1부터 i = n이 될 때까지 이다. 그리고 내부 for-loop은 2개가 있다. j = n - i부터 시작해서 j = 1까지 스페이스를 추가해준다. 또 하나의 for-loop을 만든다. 이 for-loop은 j = 1부터 j가 i가 될 때까지 *을 추가해준다.
그러면 다음과 같은 결과를 얻는다.
*
**
***
마지막으로 또 하나의 이중 for-loop을 만든다. 바깥 for-loop은 i = 1부터 i는 n - 1까지이다. 첫 번째 내부 for-loop은 j = 1부터 j = n-1까지 스페이스를 추가해준다. 또 하나의 for-loop을 만드는데 j = 1부터 j = n-i까지 *을 추가해준다.
이렇게 다 하고 나면 예제처럼 다음과 같은 결과를 얻을 수 있다.
*
**
***
**
*
- 코드
import java.io.*;
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 = n - i; j > 0; j--) {
sb.append(" ");
}
for (int j = 1; j <= i; j++) {
sb.append("*");
}
sb.append("\n");
}
for (int i = 1; i <= n-1; i++) {
for (int j = 1; j <= i; j++) {
sb.append(" ");
}
for (int j = 1; j <= n-i; j++) {
sb.append("*");
}
sb.append("\n");
}
System.out.print(sb);
}
}
- 후기
이 문제도 간단한 별 찍기 문제였다.
반응형
'백준' 카테고리의 다른 글
[백준] 10699번 : 오늘 날짜 – JAVA [자바] (0) | 2022.04.28 |
---|---|
[백준] 7567번 : 그릇 – JAVA [자바] (0) | 2022.04.28 |
[백준] 2490번 :윷놀이 – JAVA [자바] (5) | 2022.04.26 |
[백준] 2576번 : 홀수 – JAVA [자바] (0) | 2022.04.26 |
[백준] 5338번 : 마이크로소프트 로고 – JAVA [자바] (0) | 2022.04.26 |
댓글