알고리즘 풀이
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가 커지면서 반비례로 찍는 공백의 칸수가 점점 줄어들기 때문이다.