Algorithm/백준
Backjoon(백준) 2439번 -별 찍기 - 2(Java)
GrapeMilk
2020. 2. 5. 18:46
문제
첫째 줄에는 별 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문에 대입함. = 논리적 흐름을 따라감