본문 바로가기
PS/BOJ

[자바] 백준 2921 - 도미노 (java)

by Nahwasa 2022. 10. 12.

 문제 : boj2921


 

필요 알고리즘 개념

  • 구현
    • 규칙을 찾아 2중 반복문으로 구현해주면 풀 수 있다.

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

 


 

풀이

 N=2, 3, 4 일 경우를 그려보면 아래와 같다.

 

  즉, 윗줄을 i로 두고, 아랫줄을 j로 뒀을 때, 아래 코드처럼 2중 반복문을 통해 i와 j를 합계에 더해주면 된다.

for (int i = 0; i <= n; i++) {	// 윗줄은 0부터 n까지
    for (int j = i; j <= n; j++) {	// 아랫줄은 i부터 n까지
        sum += i;
        sum += j;
    }
}

 


 

코드 : github

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

public class Main {
    private void solution() throws Exception {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int n = Integer.parseInt(br.readLine());
        int sum = 0;
        for (int i = 0; i <= n; i++) {
            for (int j = i; j <= n; j++) {
                sum += i;
                sum += j;
            }
        }
        System.out.println(sum);
    }

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

댓글