본문 바로가기
백준(Baekjoon)

[백준] 2446번: 별 찍기 - 9 -자바

by IT 정복가 2022. 4. 2.
728x90

https://www.acmicpc.net/problem/2446

 

2446번: 별 찍기 - 9

첫째 줄부터 2×N-1번째 줄까지 차례대로 별을 출력한다.

www.acmicpc.net


[문제]


[코드]

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