문제 풀이

[백준] 2439번: 별 찍기 - 2 - JAVA (자바)

auyeol 2023. 1. 31. 17:31
728x90

 

문제

 

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

 

2439번: 별 찍기 - 2

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

www.acmicpc.net

 

n개의 줄을 입력받는다. 첫째 줄에는 공백 4개 / 별 1개, 둘째 줄에는 공백 3개 / 별 2개 , N번째 줄에는 공백 0개 / 별 N개를 찍으면 되는 문제이다.

 

------------------------------------------------------------------------------------------------------------------

 

Ex

 

 _ _ _ _ *

 _ _ _ * *

 _ _ * * * 

 _ * * * * 

 * * * * * 

 

------------------------------------------------------------------------------------------------------------------

 

 

풀이

 

(1) n을 입력받는다.

 

(2) n번 반복하기 위해 for문을 선언한다. > for(int i .... )

 

(3) 공백을 (n-1)번 출력하기 위해 for문을 선언한다. > for(int j .... )

 

(4) 공백을 출력한 뒤, *을 출력하기 위해 for문을 선언한다.  > for(int k .... )

      첫번째 줄에서는 1번, 이후로 1씩 증가하므로 k=1, i가 증가할 때 같이 증가시키기 위해 k<=i로 for문을 만든다. 

 

 

 

(1) Scanner 사용 

 

import java.util.Scanner;

public class Main {
	
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		
		int n = sc.nextInt();
		
		for(int i=1;i<=n;i++) { // 1 		2 3 4 
			for(int j=n;j>i;j--) { // 5 4 3 2 1
				System.out.print(" ");
			}
			for(int k=1;k<=i;k++) {	// 1	2 3 4 
			System.out.print("*");
			}
			System.out.println();
		}
				
		
	}
}

 

 

 

 

 

------------------------------------------------------------------------------------------------------------------

 

 

(2) BufferdReader 사용 

 

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()); 
		
		for(int i=1;i<=n;i++) { 
			for(int j=n;j>i;j--) {
				bw.write(" ");
			}
			for(int k=1;k<=i;k++) {
				bw.write("*");
			}
			bw.write("\n");		
		}
		br.close();
		bw.flush();
		bw.close();
	}
}

 

여기서 Integer.parseInt는 숫자형 문자열을 10진수 Integer로 변환해주는 역할을 한다. 

 

Integer.parseInt("5")     >   5 (int)

 

 

 

728x90