문제

첫째 줄에는 별 1개, 둘째 줄에는 별 2개, N번째 줄에는 별 N개를 찍는 문제

하지만, 오른쪽을 기준으로 정렬한 별(예제 참고)을 출력하시오.

 

입력

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

 

출력

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

 

풀이

일반적인 별찍기와 같은 원리인데

이번 문제는 왼쪽에서 부터 찍히는게 아닌

오른쪽에서 부터 찍히는 것이다

생각해야할건 전체적인 for문 하나를 돌면서

공백도 찍고 별도 찍어야 한다는것이다

전체 for문 안에 for문이 총 2개가 필요하다

첫번째 for문은 공백을 찍기위해 n만큼 도는거 - i 만큼해서

공백을 찍어주고

두번째 for문은 별을 찍기위해 전체 for문의 i만큼해서

별을 찍어준다

 

코드

import java.util.Scanner;

public class Main {
	public static void main(String[] args) {

		// 첫번째줄에 별이 몇줄 찍힐지 받기
		// 첫째줄 1개 두째줄 2개 ... n번째줄 n개
		// 그러나 왼쪽에서가 아닌 오른쪽에서부터 찍히기

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

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