본문 바로가기
알고리즘/백준

백준 2193번 - 이친수 (Java 8)

by latissimus 2022. 3. 25.

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

 

2193번: 이친수

0과 1로만 이루어진 수를 이진수라 한다. 이러한 이진수 중 특별한 성질을 갖는 것들이 있는데, 이들을 이친수(pinary number)라 한다. 이친수는 다음의 성질을 만족한다. 이친수는 0으로 시작하지 않

www.acmicpc.net

코드 :

dp

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

public class Main {
    static long[][] memo;
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        int N = Integer.parseInt(br.readLine());
        memo = new long[N+1][2];
        memo[1][0] = 1L;
        memo[1][1] = 1L;
        System.out.println(dp(N, 1));
    }

    public static long dp(int digit, int value) {
        if(memo[digit][value] == 0 && digit != 0){
            if(value == 1){
                memo[digit][value] = dp(digit-1,0);
            } else{
                memo[digit][value] = dp(digit-1,1) + dp(digit-1,0);
            }
        }

        return memo[digit][value];
    }
}

참고 :

바로 이전에 푼 10844번 쉬운 계단 수와 같은 원리로 생각했다. 두 문제다 내일 바텀업으로도 다시 풀어봐야겠다.

댓글