(Java) 백준 11726 - 2xn 타일링

2022. 5. 27. 04:26·코딩 테스트

문제를 보고 전형적인 DP 문제라고 생각했다.

점화식은 DP[n] = DP[n-1] + DP[n-2]로 조금만 생각해보면

금방 나오는 간단한 문제다.

이 문제를 풀면서 느꼈던것은 입력값이 최소인 1인 경우

평소 하던것처럼 배열을 n+1만 생성하면 dp[2]가 들어갈 공간이 없어서

ArrayIndexOutOfBounds가 난다는것과

메서드를 리턴 받고 나중에 10007로 나눈다면 입력값이 1000일 때

바로 오버플로우 문제가 일어나기 때문에 dp배열에 값을 저장할 때마다

10007로 나눠서 저장해야 한다는 점이다.

두 가지를 생각하지 못해 제출을 8번이나 했다.

 


최종 코드

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

public class Main {
    public static void main(String[] args) throws Exception{
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int n = Integer.parseInt(br.readLine());
        System.out.println(bottomUp(n));
    }
    public static int bottomUp(int num) {
        // 입력값이 1일 경우를 대비해서 배열 생성
        int[] dp = new int[num + 2];
        dp[1] = 1;
        dp[2] = 2;
        for (int i = 3; i < num + 1; i++) {
            // 오버플로우 방지를 위해
            dp[i] = (dp[i-1] + dp[i-2]) % 10007;
        }
        return dp[num];
    }
}

'코딩 테스트' 카테고리의 다른 글

(Java) 백준 1541 - 잃어버린 괄호  (0) 2022.05.28
(Java) 백준 11727 - 2xn 타일링 2  (0) 2022.05.27
(Java) 백준 1927 - 최소 힙  (0) 2022.05.26
(Java) 백준 17219 - 비밀번호 찾기  (0) 2022.05.25
(Java) 백준 2667 - 단지 번호 붙이기 (DFS)  (0) 2022.05.24
'코딩 테스트' 카테고리의 다른 글
  • (Java) 백준 1541 - 잃어버린 괄호
  • (Java) 백준 11727 - 2xn 타일링 2
  • (Java) 백준 1927 - 최소 힙
  • (Java) 백준 17219 - 비밀번호 찾기
로승리
로승리
  • 로승리
    Roy's Blog
    로승리
  • 전체
    오늘
    어제
    • 분류 전체보기
      • Issuefy
      • Language
      • Spring
      • Database
      • Network
      • Kubernetes
      • AWS
      • 코드스쿼드
      • 코딩 테스트
      • 생각정리
      • 국비지원
      • 회고
      • 컨퍼런스, 세미나
  • 블로그 메뉴

    • 홈
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
로승리
(Java) 백준 11726 - 2xn 타일링
상단으로

티스토리툴바