첫째 줄에는 별 1개, 둘째 줄에는 별 2개, N번째 줄에는 별 N개를 찍는 문제
하지만, 오른쪽을 기준으로 정렬한 별(예제 참고)을 출력하시오.
첫째 줄에 N(1 ≤ N ≤ 100)이 주어진다.
첫째 줄부터 N번째 줄까지 차례대로 별을 출력한다.
5
*
**
***
****
*****
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) throws NumberFormatException, IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(br.readLine());
StringBuilder sb = new StringBuilder();
for(int i=1; i<=N; i++) {
for(int j=0; j<N-i; j++) {
sb.append(" ");
}
for(int k=0; k<i; k++) {
sb.append("*");
}
sb.append("\n");
}
System.out.println(sb);
}
}
역시나 어려웠다.. 일반 별찍기를 의외로 한번에 성공해서 오른쪽 정렬 별찍기도 혹시나? 했지만 역시나였다.
내가 생각했던 방식은 printf와 지시자를 이용하여 오른쪽으로 정렬하는 방법이었는데 이렇게 하면 별 하나하나가 오른쪽으로 5번째칸에 정렬되어서 찍히더라…
결국 혼자 해내지 못하고 구글링으로 풀었다.
for문을 3개를 사용했어야 하는 문제였음. 빈칸을 띄어쓰기로 채운다는 생각이 안들고 그냥 공석으로 둬야한다는 생각이 있어서 이 방식을 생각해내지 못했다..