[백준] 2439. 별 찍기 - 2

c.Hano·2025년 4월 25일

백준

목록 보기
7/8


  1. 입력된 값만큼의 줄이 있어야한다.
  2. n번째 줄엔 입력된 값 -n 만큼의 공백을 입력해야한다.
  3. n번째 줄엔 n개 만큼의 *을 입력해야한다.

우선 1번을 만족하는 for 반복문을 작성해보자.

Scanner sc = new Scanner(System.in);
int a = sc.nextInt();

for(int i = 1; i <= a; i++) {
	System.out.println();
}

다음은 2번을 만족하는 for 반복문을 내부에 작성해보자.

Scanner sc = new Scanner(System.in);
int a = sc.nextInt();

for(int i = 1; i <= a; i++) {
	for(int j = 1; j <= a - i; j++){
    	System.out.println(" ");
    }
	System.out.println();
}

마지막으로 3번을 만족하는 for 반복문을 내부에 작성해보자.

Scanner sc = new Scanner(System.in);
int a = sc.nextInt();

for(int i = 1; i <= a; i++) {
	for(int j = 1; j <= a - i; j++){
    	System.out.print(" ");
    }
    for(int k = 1; k <= i; k++){
    	System.out.print("*");
    }
	System.out.println();
}

초반에 for문은 하나의 중첩만 가능한 줄 알고 for문을 안으로 안으로 넣었다...

Scanner sc = new Scanner(System.in);
int a = sc.nextInt();

for (int i = 1; i <= a; i++) {
	for (int j = 1; j <= i; j++) {
		for (int k = 1; k <= a - i; k++) {
			if(j > 1) {
				continue;
			}
			System.out.print(" ");
		}
		System.out.print("*");
		}
	System.out.println();
}

이래도 통과되긴 했지만 코드가 한번에 보기 쉽지 않다. for문 안에 여러개의 for문을 사용할 수 있다는 것을 알아두자.


정답

import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int a = sc.nextInt();

        for(int i = 1; i <= a; i++) {
            for(int j = 1; j <= a - i; j++){
                System.out.print(" ");
            }
            for(int k = 1; k <= i; k++){
                System.out.print("*");
            }
            System.out.println();
        }
    }
}
profile
꼬질이

0개의 댓글