실습/백준

별 찍기 12 - 2522번 (Java 풀이)

chobyeonggyu03 2024. 7. 14. 22:48
반응형

문제

예제를 보고 규칙을 유추한 뒤에 별을 찍어 보세요.

 

 

입력

첫째 줄에 N(1 ≤ N ≤ 100) 주어진다.

 

 

출력

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

 

 

 

예제 입력 1 

3

 

 

예제 출력 1 

  *
 **
***
 **
  *

 

 

 

 

 

이 문제를 처음 봤을 때 가장 중요하다고 생각했던 포인트는 '별이 출력할때 왼쪽에서 부터 출력하는 것이 아니라 오른쪽에서 부터 출력되는 걸 어떻게 처리하는지' 라고 생각했고, 이는 각 라인별로 출력해야하는 별의 갯수만큼을 사용자가 입력해준 최대 별의 갯수에서 뺸 숫자만큼을 공백으로 먼저 출력해주면 된다고 생각되어 해당 방법으로 풀이를 진행해보았다.

 

 

 

 

package BAEKJOON_2522;

/*
 날짜: 2024.07.14.일
 내용: 백준 2522번 문제
 */

import java.util.*;

public class BAEKJOON_2522 {

	public static void main(String[] args) {
		
		Scanner sc = new Scanner(System.in);
		
		int n = sc.nextInt();				// 최대 별의 갯수를 입력받기

		for (int i=1; i<=n; i++) {			// 윗부분
			int blankCount = n-i;
			while(blankCount > 0) {
				System.out.printf(" ");
				blankCount--;
			}
			
			int starCount = i;
			while(starCount > 0) {
				System.out.printf("*");
				starCount--;
			}
			System.out.printf("\n");
		}

		for (int i=1; i<=n; i++) {			// 아랫부분
			
			int blankCount = i;
			while(blankCount > 0) {
				System.out.printf(" ");
				blankCount--;
			}
			
			int starCount = n-i;
			while(starCount > 0) {
				System.out.printf("*");
				starCount--;
			}
			System.out.printf("\n");
		}
	}
}

 

 

 

 

 

 

 

 

 

 

반응형