본문 바로가기
Coding Test/백준

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

by olli2 2021. 11. 4.

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

내 답안

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++) {
				bw.write((" ".repeat(N-i)) + "*".repeat(i) + "\n");
				}
		bw.flush();
		bw.close();
	}
}

 

java는 다른 언어들처럼 "*" * 10 등과 같은 방법으로 문자열 반복이 불가능하다.

문자열을 반복하고자 한다면 for문을 사용하거나 repeat 메서드(자바 11 이상)를 사용해야 한다.

 

내 답안 - 2 (2차원 배열 사용)

import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		
		String[][] star = new String[n][n];
		
		//배열 초기화
		for (int i=0; i<n; i++) {
			for (int j=0; j<n; j++) {
				star[i][j] = " ";
			}
		}
		
		for (int i=0; i<n; i++) {
			for (int j=n-1; j>=n-1-i; j--) {
				star[i][j] = "*";
			}
		}
		
		for (int i=0; i<n; i++) {
			System.out.println(String.join("", star[i]));
		}
	}

}