[BOJ/Silver3] 2193번 이친수 - JAVA[자바]

2025. 1. 4. 23:36·PS/백준

난이도 : 실버 3

유형 : DP(동적 계획법)

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

구현 시간 : 30분

 

 

 

백준 이미지

 

 

 

문제풀이

위 문제는 전형적인 DP 문제 유형이다. 풀이는 반복문을 사용한 Bottom-Up 방식으로 해결하였다.

 

이 문제를 해결하기 위해서는 이친수의 규칙을 파악해야 한다.

이진수가 0으로 끝나는 수는 다음 자리 숫자일 때, 0과 1로 생성되고, 1로 끝나는 수는 0으로 생성된다.

 

예를 들면, 10010 이라는 이진수는 다음 6자리수에서 10010 + 0, 10010 + 1 로 생성된다.

또한, 10001 이라는 이진수는 다음 6자리수에서 10001 + 0 으로 생성된다.

 

따라서 N 번째 자리수에서 0으로 끝나는 이친수와, 1로 끝나는 이친수의 점화식은 다음과 같다.

Zero(N) = Zero(N-1) + One(N-1)
One(N) = Zero(N-1)

따라서 위와 같은 점화식을 세울 수 있다. 위 점화식을 코드로 구현하면 아래와 같다.

 

 

 

 

1차 시도 - 통과 (Bottom-Up)

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int N = Integer.parseInt(br.readLine());
        
        long[][] dp = new long[N + 1][2];
        dp[1] = new long[]{0, 1};
        
        for (int i = 2; i < N + 1; i++) {
            dp[i][0] = dp[i - 1][0] + dp[i - 1][1];
            dp[i][1] = dp[i - 1][0];
        }
        
        System.out.println(dp[N][0] + dp[N][1]);
    }
}

 

'PS > 백준' 카테고리의 다른 글

[BOJ/Silver1] 2156번 포도주 시식 - JAVA[자바]  (0) 2025.01.05
[BOJ/Silver1] 9465번 스티커 - JAVA[자바]  (2) 2025.01.04
[BOJ/Silver3] 2579번 계단 오르기 - JAVA[자바]  (0) 2025.01.03
[BOJ/Gold5] 7569번 토마토 - JAVA[자바]  (0) 2024.12.31
[BOJ/Gold4] 3190번 뱀 - JAVA[자바]  (1) 2024.12.24
'PS/백준' 카테고리의 다른 글
  • [BOJ/Silver1] 2156번 포도주 시식 - JAVA[자바]
  • [BOJ/Silver1] 9465번 스티커 - JAVA[자바]
  • [BOJ/Silver3] 2579번 계단 오르기 - JAVA[자바]
  • [BOJ/Gold5] 7569번 토마토 - JAVA[자바]
hongjeZZ
hongjeZZ
백엔드 개발자로서의 성장 과정을 기록합니다.
  • hongjeZZ
    Hong's Dev Note
    hongjeZZ
  • 전체
    오늘
    어제
    • 분류 전체보기 (40)
      • Back-End (9)
        • Java (0)
        • Spring (9)
        • Docker & Kubernetes (0)
      • Database (0)
        • MySQL (0)
        • Redis (0)
        • 데이터베이스 (0)
      • CS (4)
        • 운영체제 & 네트워크 (1)
        • 아키텍쳐 & 분산시스템 (0)
      • 회고 (0)
      • PS (27)
        • 백준 (16)
        • 알고리즘 (2)
        • 프로그래머스 (9)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • GitHub
  • 공지사항

  • 인기 글

  • 태그

    mongodb
    DP
    시뮬레이션
    Redis
    문자열
    BFS
    CS
    dfs
    spirng boot
    스택
    그리디
    Stomp
    그래프 이론
    Spring
    웹소켓
    운영체제
    큐
    우선순위큐
    컴퓨터구조
    구현
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
hongjeZZ
[BOJ/Silver3] 2193번 이친수 - JAVA[자바]
상단으로

티스토리툴바