2023. 7. 11. 21:46ㆍ백준 & 프로그래머스
문제 출처
https://school.programmers.co.kr/learn/courses/30/lessons/181186
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
문제 보기
해당 문제는 dp 문제로, dp 좀 풀어봤다 싶은 분들은 보자마자 dp네? 하고 타일 경우의 수 부터 체크하셨을 것이다 ㅎㅎ 개인적인 생각으로 문제보고 dp라는 생각을 못하셨다면 좀더 쉬운 dp 문제를 풀고 오는 것을 추천드립니다!
테스트 케이스에 3이 있어서 그런가 dp[i] = dp[i-1] + dp[i-2] * 2 + dp[i-3] * 5 까지는 발견하기 쉬웠다. 하지만 4 + 3a, 5 + 3a, 6 + 3a 짜리 타일들을 찾지 못해 꽤나 오랜 시간이 걸렸다. 해당 타일들의 모양을 질문목록에 정리해주신 분이 계셨다.
https://school.programmers.co.kr/questions/47346
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
따라서 4 + 3a, 5 + 3a, 6 + 3a 의 값들을 계산하는 과정이 필요하다. 하지만 i번째 dp값을 계산할 때마다, 해당 값들을 더해주고 곱하는 과정은 오랜 시간을 필요로 한다. 필자는 나머지를 기준으로 합들을 저장해두었다. 즉 i - (4 + 3a)의 값들의 합을 저장하였고 i의 맞춰 필요한 값을 곱해주는 방식으로 구현했다. 혹시 이해가 안되시는 분들은 직접 정리해보면서 공통점 찾는 것을 추천한다!
'백준 & 프로그래머스' 카테고리의 다른 글
[백준] 1987번 알파벳 - python (0) | 2023.07.15 |
---|---|
[프로그래머스] 연속된 부분 수열의 합 - python (0) | 2023.07.11 |
[프로그래머스] 두 원 사이의 정수 쌍 - PYTHON (0) | 2023.07.11 |
[프로그래머스] 요격 시스템 - python (0) | 2023.07.10 |
[프로그래머스] 주차 요금 계산 - python (0) | 2023.06.28 |