[백준/JAVA] 반복문 - 2439번 별 찍기 - 2

신승현·2022년 8월 7일
0

더 좋은 문제 풀이가 있거나 궁금하신 점이 있다면 편하게 댓글 남겨주세요!


📝 문제


2439번 별 찍기 - 2


🤷‍♂️ 접근 방법


이번 문제는 [백준/JAVA] 반복문 - 2438번 별 찍기 - 1 와 출력 형식만 다르고 문제를 푸는 방법은 같습니다. 차이가 있다면 이전의 별 찍기 문제는 * 의 출력이 왼쪽에서 시작하였다면 이번 문제에서는 오른쪽에서 부터 시작된다는 것입니다. 일단 별 자체를 출력하는 것은 공통됨으로 별 출력 부분은 이준 for문을 사용하여 이전 코드와 동일하게 작성하였습니다.

    for (int i = 0; i < N; i++) {
        for(int j = 0; j <= i; j++) {
            System.out.printf("*");
        }
        System.out.println();
    }

다음으로는 오른쪽으로 정렬된 출력을 위해 공백 역시 출력의 한 부분으로 생각했습니다. 첫줄에는 4개의 공백이 있고 두번째 줄에는 3개의 공백, 세번째 줄에는 2개의 공백, 네번째 줄에는 1개의 공백, 마지막 줄에는 공백이 없다고 생각하였습니다. 하여 위의 출력 코드에 공백을 입력하는 반복문을 추가하는 것으로 문제를 해결하였습니다.

    for (int i = 0; i < N; i++) {
    	//공백 반복
        for(int k = 1; k< N-i; k++){
            System.out.printf(" ");
        }
        
        //* 출력 반복
        for(int j = 0; j <= i; j++) {
            System.out.printf("*");
        }
        System.out.println();
    }

✍ 풀이



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 k = 1; k< N-i; k++){
                System.out.printf(" ");
            }
            for(int j = 0; j <= i; j++) {
                System.out.printf("*");
            }
            System.out.println();
        }
        
    }
}
profile
I have not failed. I've just found 10,000 ways that won't work. - Thomas A. Edison

0개의 댓글