백준/반복문 (완료)

[백준/Java] 2439번: 별 찍기 - 2

KimNang 2023. 4. 20. 10:36

문제 정보

제목 : 별 찍기 - 2

번호 : 2439번

사용 언어 : Java

문제 링크

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

 

2439번: 별 찍기 - 2

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

www.acmicpc.net

 

시간 제한 메모리 제한
1 초 128 MB

 

문제

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

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

 

입력

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

 

출력

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

 

입출력 예제


나의 풀이

BufferedReader를 이용해 한줄을 입력 값으로 받아 int형으로 형변환하고 num변수에 저장합니다. 먼저 1부터 num번 반복하는 for루프를 생성합니다. 이제 공백을 출력할 for루프, 별을 찍을 for루프를 두개 생성합니다. 공백 루프는 1부터 num-i번 반복하며 " "를 출력합니다. 별을 찍을 루프는 0부터 i번까지 반복하며 "*"을 출력합니다. 2개의 반복문이 끝나면 bw.newLine()을 통해 줄 바꿈을 합니다.

 

코드

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 num = Integer.parseInt( br.readLine() );
      
      for(int i = 1; i <= num; i++) {
          for(int j = 1; j <= num-i; j++) {
              bw.write(" ");
          }
          
          for(int k = 0; k < i; k++) {
              bw.write("*");
          }
          
    	  bw.newLine();
      }
      
      bw.flush();
      bw.close();
      br.close();
   }   
}