반응형
https://www.acmicpc.net/problem/2444
2444번: 별 찍기 - 7
첫째 줄부터 2×N-1번째 줄까지 차례대로 별을 출력한다.
www.acmicpc.net
- 문제
- 문제 풀이
백준 2444번 별 찍기 - 7은 브론즈 3 난이도의 구현 문제이다. 이 문제에서도 마찬가지로 예제에서 n과 패턴이 주어지고 패턴에 나와있는 것처럼 별을 출력해주면 된다.
이 문제도 이중 for-loop을 이용해서 푼다. 우선 바깥 for-loop은 i = 1부터 시작하고 i = n까지이다.
우선 i가 1일 때, 스페이스가 4개가 있는 거를 볼 수 있다. 즉, j = 1부터 n - i까지인 for-loop을 만든다. 이 for-loop에서는 스페이스만 추가한다.
그리고 보면 i = 1일 때, *이 1개, i = 2일 때, *이 3개인 것을 볼 수 있다. 즉, 별이 2 × i - 1개 있다는 것이다. 이것도 새로운 for-loop을 만들어서 해준다.
일단 이렇게 하면 다음과 같은 결과를 얻는다.
*
***
*****
*******
*********
그다음에는 예제에 나와 있는 나머지 4줄을 하면 된다.
새로운 이중 for-loop을 만들어 준다. 이번에는 i = n - 1부터 i가 1이 될 때까지 이다. 이중 for-loop 안에 들어가는 내용은 이전과 같다.
- 코드
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 = 1; j <= n-i; j++) {
sb.append(" ");
}
for (int j = 1; j <= 2*i-1; j++) {
sb.append("*");
}
sb.append("\n");
}
for (int i = n-1; i >= 1; i--) {
for (int j = 1; j <= n-i; j++) {
sb.append(" ");
}
for (int j = 1; j <= 2*i-1; j++) {
sb.append("*");
}
sb.append("\n");
}
System.out.print(sb);
}
}
- 후기
이전에 풀었던 별 찍기 문제들처럼 어려운 거는 없는 문제였다.
반응형
'백준' 카테고리의 다른 글
[백준] 1269번 : 대칭 차집합 – JAVA [자바] (0) | 2022.04.26 |
---|---|
[백준] 14425번 : 문자열 집합 – JAVA [자바] (1) | 2022.04.26 |
[백준] 14607번 : 피자 (Large) – JAVA [자바] (0) | 2022.04.22 |
[백준] 1302번 : 베스트셀러 – JAVA [자바] (0) | 2022.04.22 |
[백준] 2445번 : 별 찍기 - 8 – JAVA [자바] (0) | 2022.04.22 |
댓글