Notice
Recent Posts
Recent Comments
Link
S E P H ' S
[Java] 2 x n 타일링 본문
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
문제 풀이
처음엔 단순히 dfs를 생각했다가 경우의 수가 많아질 수 있다와 1칸, 2칸 ~ N칸 늘어나게 되더라도 몇 칸마다 채워주는 규칙은 똑같지 않나? 라는 생각에 DP가 떠올랐다. 점화식 구하는 것은 DP 문제 중에 기초 중에 기초였지만 경우의 수를 1,000,000,007로 나누는 것을 DP 배열에 저장할 때 모두 해줘야 했다. 앞으로 저런 제한사항이 있다면 주의해서 과정에 꼭 넣는 것을 빼먹지 말아야겠다.
public class 타일링_2xn {
public int solution(int n) {
int answer = 0;
int[] DP = new int[n + 1];
DP[0] = 0;
DP[1] = 1;
DP[2] = 2;
for (int i = 3; i <= n; i++) {
int num = DP[i-1] + DP[i-2];
DP[i] = num % 1000000007;
}
answer = DP[n];
return answer;
}
}
'Algorithm > Programmers' 카테고리의 다른 글
[Java] 주식가격 (0) | 2023.04.25 |
---|---|
[Java] 단체사진 찍기 (0) | 2023.04.14 |
[Python] n^2 배열 자르기 (0) | 2021.12.15 |
[Python] 가장 긴 팰린드롬 (0) | 2021.09.09 |
[Python] 기지국 설치 (0) | 2021.09.09 |