-
[코딩테스트] 백준(BAEKJOON) - 2×n 타일링 2(Java, 11727번)코딩테스트/백준 2023. 2. 4. 18:38728x90
안녕하세요~
벌써 1월이 지나가고 2월이네요~
이제는 날씨도 제법 풀려 나름 따뜻해지고 있습니다.
이래저래 스프링도 공부하고 하느라 정신이 없네요 ㅠㅠ😂😂
오늘 풀어볼 문제 바로 시작하겠습니다.
https://www.acmicpc.net/problem/11727
11727번: 2×n 타일링 2
2×n 직사각형을 1×2, 2×1과 2×2 타일로 채우는 방법의 수를 구하는 프로그램을 작성하시오. 아래 그림은 2×17 직사각형을 채운 한가지 예이다.
www.acmicpc.net
문제입니다.
어떠신가요 다들 풀으셨나요?
저는 운좋게 규칙이 보여서 풀어낼 수 있었습니다.
그렇다면 저의 코드 남겨드리겠습니다.
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Scanner; public class Main { public static void main(String[] args) throws NumberFormatException, IOException { Scanner sc=new Scanner(System.in); int num=sc.nextInt(); int[]dp=new int[num+1]; dp[1]=1; if(num>1) { dp[2]=3; for(int i=3;i<=num;i++) dp[i]=((dp[i-2]*2)+dp[i-1])%10007; } System.out.println(dp[num]); } }
그렇습니다.
저는 이렇게 하나씩 그려가면서 규칙을 찾았습니다.
쓰다가 규칙을 찾아보자~ 라고 생각하던 중
f(n)=f(n-2)*2+f(n-1) 이라는 규칙을 찾게됐습니다.
찾은 규칙을 갖고 나머지 예시로 준 문제에 대입해보니 다행히 잘 맞네요!
이렇게 해서 해당 문제를 풀어냈습니다.
네 오늘은 간단하게 마무리하겠습니다.
감사합니다~ :D
'코딩테스트 > 백준' 카테고리의 다른 글
[코딩테스트] 백준(BAEKJOON) - 가장 큰 증가 부분 수열(Java, 11055번) (0) 2023.02.07 [코딩테스트] 백준(BAEKJOON) - 스티커(Java, 9465번) (0) 2023.02.04 [코딩테스트] 백준(BAEKJOON) - 동전 1(Java, 2293번) (1) 2023.02.01 [코딩테스트] 백준(BAEKJOON) - LCS(Java, 9251번) (0) 2023.01.31 [코딩테스트] 백준(BAEKJOON) - 01타일(Java, 1904번) (0) 2023.01.30