본문 바로가기
Algorithm/Baekjoon

[백준 알고리즘][JAVA] 2439번 : 별 찍기 - 2

by hyunipad 2023. 4. 19.
반응형

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

 

2439번: 별 찍기 - 2

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

www.acmicpc.net

이번 문제는 일반적인 별 찍기 문제와 다른 점은 오른쪽 정렬입니다.

풀이법은 먼저 (N - i) 만큼 공백 출력 후 i만큼 별을 찍습니다.

 

for문을 돌려 갯수만큼 공백과 별을 찍으면 해결 되겠지만, 문자열 곱셈을 활용하여 문제를 해결하였습니다.

\0은 문자열의 끝을 찾아주는데, 그것을 공백과 별로 replace 시켜 문자열을 완성합니다.

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++) {
			String blank = new String(new char[num-i]).replace("\0", " ");
			String star = new String(new char[i]).replace("\0", "*");
			if(num != i) {
				bw.write(blank + star + "\n");
			}else {
				bw.write(blank + star);
			}
		}
		
		br.close();
		bw.flush();
		bw.close();
	}

}

 

 

반응형

댓글