알고리즘 풀이

2439번: 별 찍기 - 2 - java 풀이

코디드 2023. 3. 31. 23:22

 

기본적인 별찍기 문제다.

 

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));
		
		int N = Integer.parseInt(br.readLine());
		br.close();
		
		BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
		
		for(int i=1; i<=N; i++) {
			for(int j=i; j<N; j++) {
				bw.write(" ");
			}
			for(int j=1; j<=i; j++) {
				bw.write("*");
			}
			bw.newLine();
		}
		bw.flush();
		bw.close();
	}
}

 

2438번 문제가 행의 숫자가 커질수록 찍는 별의 갯수가 정비례해서 커졌다면,

2439번은 행의 숫자가 커질수록 공백의 칸수가 줄어드는 것을 표현하는 것이 핵심이다.

 

커지는 값을 찍을 때는 내부 for문의 범위에 외부 for문의 i 값을 넣어줬다면,

줄어드는 값을 찍을 때는 내부 for문의 초기화식에 외부 for문의 i값을 넣어준다.

 

그렇게 해야 i가 커지면서 반비례로 찍는 공백의 칸수가 점점 줄어들기 때문이다.