728x90
https://www.acmicpc.net/problem/2444
[문제]
[코드]
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int N = sc.nextInt();
for(int i = 1; i <= N; i++) {
for(int j = N; j > i; j--)
System.out.print(" ");
for(int k = 0; k < i*2-1; k++)
System.out.print("*");
System.out.println();
}
for(int i = N; i > 1; i--) {
for(int j = 0; j <= N-i; j++)
System.out.print(" ");
for(int k = 2; k < i*2-1; k++)
System.out.print("*");
System.out.println();
}
sc.close();
}
}
[설명]
1. 몇 행을 출력할지를 알기위해 N을 입력받는다.
2. 마름모 모양을 출력해야하기 때문에 그것을 고려해서 바깥쪽 for문을 2개 작성한다.
3. 바깥쪽의 첫 번째 for문은 행을 나타내는데 N개만큼 출력되어야 하기 때문에 위의 코드처럼 작성한다.
4. 안 쪽의 첫 번째 for문은 공백을 나타내는데 공백이 하나씩 줄어들아야 하기때문에 위의 코드처럼 작성한다.
5. 안 쪽의 두 번째 for문은 행마다 별을 출력하는 것을 나타내는데 1행은 1개 2행은 3개...N행은 N*2-1행이기 때문에 위의 코드처럼 작성한다.
6. 행을 바꾸기 위해 System.out.println();을 작성한다.
7. 바깥쪽의 두 번째 for문은 마름모의 아래쪽을 출력하기 위해 사용되는데 N-1행 만큼 출력되야 하기 때문에 위의 코드처럼 작성한다.
8. 안 쪽의 첫 번째 for문은 공백을 나타내는데 첫 행에 공백을 하나 주고 공백이 하나씩 늘어나야 하기때문에 위의 코드처럼 작성한다.
9. 안 쪽의 두 번째 for문은 별을 출력하는 것을 나타내는데 N이 만약에 5라면 1행은 7개 2행은 5개...4행은 1이 나와야 하기 때문에 위의 코드처럼 작성해 준다.
10. 행을 바꾸기 위해 System.out.println();을 작성한다.
[결과]
728x90
'백준(Baekjoon)' 카테고리의 다른 글
[백준] 2445번: 별 찍기 - 8 - 자바 (0) | 2022.04.01 |
---|---|
[백준] 1267번: 핸드폰 요금 - 자바 (0) | 2022.03.31 |
[백준] 2443번 별 찍기 - 6- 자바 (0) | 2022.03.26 |
[백준] 2442번: 별 찍기 - 5 - 자바 (0) | 2022.03.25 |
[백준] 2441번: 별 찍기 -4 - 자바 (0) | 2022.03.24 |