본문 바로가기
PS/BOJ

[자바] 백준 7595 - Triangles (java)

by Nahwasa 2022. 12. 7.

 문제 : boj7595


 

필요 알고리즘 개념

  • 구현
    • 문제에서 제시된 형태로 별찍기를 해주면 된다.

※ 제 코드에서 왜 main 함수에 로직을 직접 작성하지 않았는지, 왜 Scanner를 쓰지 않고 BufferedReader를 사용했는지 등에 대해서는 '자바로 백준 풀 때의 팁 및 주의점' 글을 참고해주세요. 백준을 자바로 풀어보려고 시작하시는 분이나, 백준에서 자바로 풀 때의 팁을 원하시는 분들도 보시는걸 추천드립니다.

 


 

풀이

하나의 정수만 입력받아 별을 찍을 수 있다면, 여러개의 별을 출력하는건 그냥 반복문이 하나 들어가는 과정일 뿐이다. 그러니 하나의 정수에 대해 별을 찍는 과정만 살펴보자.

private void print(int n) {
    for (int i = 1; i <= n; i++) {	// n개의 줄에
        for (int j = 0; j < i; j++)	// 각각 1~n개의 '*'을 찍는다. 
            sb.append('*');
        sb.append('\n');	// 개행
    }
}

 


 

코드 : github

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

public class Main {
    private static final StringBuilder sb = new StringBuilder();
    private void print(int n) {
        for (int i = 1; i <= n; i++) {
            for (int j = 0; j < i; j++)
                sb.append('*');
            sb.append('\n');
        }
    }
    public void solution() throws Exception {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        while (true) {
            int n = Integer.parseInt(br.readLine());
            if (n==0) break;
            print(n);
        }
        System.out.print(sb);
    }

    public static void main(String[] args) throws Exception {
        new Main().solution();
    }
}

댓글