JAVA 백준 알고리즘 문제풀이/반복문

[백준 BOJ 2439번] 별 찍기-2

Xerath(제라스) 2022. 3. 28. 02:34
728x90
반응형

출처 : https://www.acmicpc.net/problem/2439

 

2439번: 별 찍기 - 2

첫째 줄에는 별 1개, 둘째 줄에는 별 2개, N번째 줄에는 별 N개를 찍는 문제 하지만, 오른쪽을 기준으로 정렬한 별(예제 참고)을 출력하시오.

www.acmicpc.net

 

1. 문제

첫째 줄에는 별 1개, 둘째 줄에는 별 2개, N번째 줄에는 별 N개를 찍는 문제

하지만, 오른쪽을 기준으로 정렬한 별(예제 참고)을 출력하시오.


2. 입력

첫째 줄에 N(1 ≤ N ≤ 100)이 주어진다.

5

3. 출력

첫째 줄부터 N번째 줄까지 차례대로 별을 출력한다.

    *
   **
  ***
 ****
*****

4. 풀이

어쩔 수 없이 이중 for문을 써야 한다. 입력받는 N 값이 곧 각 행의 전체 길이라고 보면 된다. 그 길이를 *과 " "로 채우는 것이다.

 

(전체 길이) - (행 번호) 만큼 " "를 sb에 append하고 (행 번호)만큼 *을 append한다. (이 과정에서 불가피하게 이중 for문을 사용하였다.)

모든 append가 끝나면 println으로 출력을 한다.


5. 소스코드

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main {
  public static void main(String[] args) throws IOException {
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    StringBuilder sb = new StringBuilder();

    int N = Integer.parseInt(br.readLine());
    for(int i=1; i<=N; i++){
        for(int j=0; j<N-i; j++) sb.append(" ");
        for(int j=0; j<i; j++) sb.append("*");
        sb.append("\n");
    }
    System.out.println(sb);
  }
}

6. 배운 것

-

 

 

728x90
반응형