티스토리 뷰

문제

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

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

입력

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

출력

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

 

 

 My Code

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;


public class Main {

	public static void main(String[] args) throws IOException {
		
		
			BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
			BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
			int n = Integer.parseInt(br.readLine().trim());
			
			for (int i = 1; i <= n; i++) {
				for(int j = 0; j < (n-i); j++) {
					bw.write(" ");
					
				}
				for(int k = n; k > (n-i); k--) {
					bw.write("*");
				}
				bw.write(" \n");
				
			}
			
			bw.flush();
			bw.close();
		
	}
}

- 풀이 과정

 

 - 빈칸과 별을 출력하는 각각의 반복문이 있어야 한다고 생각함.

 - 전체 시행을 조정하는 for문과 빈칸과 별을 출력하는 각각의 for문 생성 (총 3개)

 - n은 출력하고자 하는 별의 개수이므로 별을 출력하는 조건문의 변수 k에는 별의 개수 그대로 n을 대입

 - 별이 오른쪽으로 정렬 되므로 첫 번째 별을 출력할때는 빈칸이 없고 (int j=0) 출력하고자하는 별의 수에서 시행수를 뺀 값 만큼 빈칸을 출력해야됨. 

 - 즉 n으로 1을 대입했을 때 생각해야하는 조건과 n그 차체로 생각해야하는 조건을 생각 후 그대로 for문에 대입함. = 논리적 흐름을 따라감 

댓글