728x90
https://www.acmicpc.net/problem/2446
[문제]
[코드]
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 = 0; i < N; i++) {
for(int j = 0; j < i; j++)
System.out.print(" ");
for(int k = i; k < N*2-(i+1); k++)
System.out.print("*");
System.out.println();
}
for(int i = 0; i < N-1; i++) {
for(int j = i+1; j < N-1; j++)
System.out.print(" ");
for(int k = N-2; k < N+i*2+1; k++)
System.out.print("*");
System.out.println();
}
sc.close();
}
}
[설명]
1. 몇 행을 출력할지를 알기위해 N을 입력 받는다.
2. 위쪽의 for문은 위쪽의 역삼각형 모양을 위해 필요하고 아래의 for문은 아래 삼각형 모양을 출력하는데 사용된다.
3. 위의 for문의 안 쪽 첫 번째 for문은 공백을 출력하기 위해 작성해야 한다. 1행은 공백 0개, 2행은 공백 1개... 이런 식으로 진행되기 때문에 위의 코드처럼 작성한다.
4. 위의 for문의 안 쪽 두 번째 for문은 별을 출력하기 위해 작성해야 한다. 1행은 N*2-1개, 2행은 N*2-3개, 3행은 N*2-5개...이런 식으로 진행되기 때문에 위의 코드처럼 작성하면 된다.
5. 그 후에 행 바꿈을 위해 System.out.println();을 작성한다.
6. 아래의 for문의 안 쪽 첫 번째 for문은 공백을 출력 해야한다. 위의 코드처럼 작성하면 된다.
7. 아래의 for문의 안 쪽 두 번째 for문은 별을 출력 해야한다. 별이 점점 늘어나야 하기 때문에 위의 코드처럼 작성하면 된다.
8. 그 후에 행 바꿈을 위해 System.out.println();을 작성한다.
[결과]
728x90
'백준(Baekjoon)' 카테고리의 다른 글
[백준] 1547번: 공 - 자바 (0) | 2022.04.04 |
---|---|
[백준] 1284번: 집 주소 - 자바 (0) | 2022.04.03 |
[백준] 2445번: 별 찍기 - 8 - 자바 (0) | 2022.04.01 |
[백준] 1267번: 핸드폰 요금 - 자바 (0) | 2022.03.31 |
[백준] 별 찍기 - 7- 자바 (0) | 2022.03.29 |