문제
첫째 줄에는 별 1개, 둘째 줄에는 별 2개, N번째 줄에는 별 N개를 찍는 문제
하지만, 오른쪽을 기준으로 정렬한 별(예제 참고)을 출력하시오.
입력
첫째 줄에 N(1 ≤ N ≤ 100)이 주어진다.
출력
첫째 줄부터 N번째 줄까지 차례대로 별을 출력한다.
입력 | 출력 |
5 | *
**
***
****
***** |
답
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int t = sc.nextInt();
for (int n = 1; n <= t; n++) {
for (int b = t; b > n; b--) {
System.out.print(" ");
}
for (int s = 1; s <= n; s++) {
System.out.print("*");
}
System.out.println("");
}
sc.close();
}
}
풀이
공백과 별을 함께 나타내기 위해 이중 포문을 사용해야 한다.
공백은 1줄 당, 지정한 t의 수에서 별의 개수를 뺀 만큼 존재해야 하고, 별은 1부터 t의 수까지 존재해야 한다.
for (int b = t; b > n; b--) {
System.out.print(" ");
} // (5, 4, 3, 2) -> (5, 4, 3) -> (5, 4) -> (5) -> ()
for (int s = 1; s <= n; s++) {
System.out.print("*");
공백이 아닌 b를 출력해보면 아래와 같이 작동하는 것을 확인할 수 있다.
for (int b = t; b > n; b--) {
System.out.print(b);
}

Share article