누룽지맛치킨
어미새의 개발일지
누룽지맛치킨
전체 방문자
오늘
어제
  • 분류 전체보기 (86)
    • 코틀린 (8)
    • 안드로이드 (5)
      • 디자인 (2)
      • 개발 (2)
      • 도구 (1)
    • 피그마 (1)
    • 대외활동 (0)
    • 프로젝트 (0)
    • 백준 (55)
      • JAVA (55)
    • 알고리즘 (3)
    • 클라우드 (5)
    • 스터디 (2)
      • 코테 (2)
    • 자료구조 (5)
    • 컴퓨터 기술 (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • Room version 올리기
  • 클라우드 컴퓨팅
  • 클라우드
  • 백준 자바 수열
  • 자바 Priority Queue
  • 백준 자바
  • 백준 자바 2559번
  • 백준 자바 다이나믹 프로그래밍
  • 알고리즘 조합
  • 코틀린 인 액션
  • 백준 자바 2292번
  • 안드로이드 디자인
  • 자료구조
  • 백준 자바 누적합
  • 백준 자바 정렬
  • 코틀린
  • Room Migration
  • 백준 자바 벌집
  • 안드로이드
  • 코틀린 runBlocking

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
누룽지맛치킨

어미새의 개발일지

백준/JAVA

[백준/JAVA] 14852번 타일 채우기 3

2023. 2. 14. 15:59
  • https://www.acmicpc.net/problem/14852

1. 문제

2×N 크기의 벽을 2×1, 1×2, 1×1 크기의 타일로 채우는 경우의 수를 구해보자.

2. 문제 접근

1) 첫째 줄에 길이 N을 입력받는다.
2) 타일 채우기의 규칙을 파악한다.
2-1) N이 1일 때 경우의 수는 2, N이 2일 때 경우의 수는 7이다.
2-2) N이 3이상일 때 N-1 크기에서 채우는 경우의 수는 2가지이다.
2-3) N-2 크기에서는 채우는 경우의 수는 3가지이다.
2-4) N-(3이상) 크기에서는 채우는 경우의 수는 2가지이다.
3) 재귀적으로 표현시 시간초과가 발생하기 때문에 모든 타일 채우는 경우의 수 배열의 2배를 더한 값을 저장하고 N번 째 경우의 수는 2배를 더한 값 + N-2의 경우의 수로 표현한다.

3. 코드

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

public class Main {
    static long tile[];
    public static void main(String[] args) throws IOException{
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int N = Integer.parseInt(br.readLine());
        tile = new long[N+1];
        tile[0] = 1;
        tile[1] = 2;
        if(N>1)
            tile[2] = 7;
        long temp =20;
        for(int i=3;i<=N;i++) {
            tile[i] = (temp + tile[i-2]) % 1000000007;
            temp = (temp + tile[i]*2) % 1000000007;
        }
        System.out.println(tile[N]);
    }
}

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

[백준/JAVA] 11659번 구간 합 구하기 4  (0) 2023.02.14
[백준/JAVA] 2133번 타일 채우기  (0) 2023.02.14
[백준/JAVA] 2156번 포도주 시식  (0) 2023.02.14
[백준/JAVA] 10844번 쉬운 계단 수  (0) 2023.02.14
[백준/JAVA] 1764번 듣보잡  (0) 2023.02.14
    '백준/JAVA' 카테고리의 다른 글
    • [백준/JAVA] 11659번 구간 합 구하기 4
    • [백준/JAVA] 2133번 타일 채우기
    • [백준/JAVA] 2156번 포도주 시식
    • [백준/JAVA] 10844번 쉬운 계단 수
    누룽지맛치킨
    누룽지맛치킨

    티스토리툴바