Memoization

개발공부/algorithm

[백준][python] 1904.01타일 - 동적계획법

문제 백준 1904 01타일 Silver III python 문제링크 1904번: 01타일 지원이에게 2진 수열을 가르쳐 주기 위해, 지원이 아버지는 그에게 타일들을 선물해주셨다. 그리고 이 각각의 타일들은 0 또는 1이 쓰여 있는 낱장의 타일들이다. 어느 날 짓궂은 동주가 지원이 www.acmicpc.net 나의 코드 한 문제에서 메모리초과 시간초과가 모두 나본 것은 또 처음인 것 같다.. 이 문제는 패턴만 찾으면 쉽게 풀 수 있다. N = 1 -> 1 N = 2 -> 00 N = 3 -> 001, 100, 111 N = 4 -> 0011, 0000, 1001, 1100, 1111 N = 5 -> 00111, 00001, 00100, 10011, 10000, 11001, 11100, 11111 . . ..

개발공부/algorithm

[백준][python] 1003.피보나치 함수 - 동적계획법

문제 백준 1003 피보나치 함수 Silver III python 문제링크 1003번: 피보나치 함수 각 테스트 케이스마다 0이 출력되는 횟수와 1이 출력되는 횟수를 공백으로 구분해서 출력한다. www.acmicpc.net 나의 코드 원래 피보나치 문제를 풀듯이 재귀적으로 풀었는데 역시나 시간 초과 에러가 났다. 여러번 반복되는 코드의 실행에서 바뀌지 않는 값들이 존재하기 때문에 매번 같은 연산을 반복할 필요가 없다. 따라서 이 문제는 동적계획법과 메모이제이션을 사용해서 풀어야한다. 메모이제이션이란, 자꾸만 반복되지만 그 결과값은 변하지 않는 작은 문제들의 결과값을 저장하는 것을 의미한다. 이 두가지 개념은 새로운 포스트에서 더 자세하게 다뤄보겠다. # N이 0, 1 일때의 0과 1의 출현 빈도수 cnt..

so.py
'Memoization' 태그의 글 목록