알고리즘(python)/기본
[Python]동적계획법2 백준 10942
문제 https://www.acmicpc.net/problem/10942 팰린드롬이란 반으로 나누어 좌우가 같은 것이다.짝수개일때는 반으로나누어 같은경우 홀수개일때는 중앙값을 기준으로 좌우가 같은것이다.2 2, 4 4 4 4 , 1 ,1 2 1 같은경우 모두 팰린드롬이다.테스트 케이스마다 모두 계산한다면 O(N^2)*M 번이 걸릴것이다.dp를 이용해 모든 경우를 구한뒤 출력만 해주는 방식으로 구현해보자.방법은 먼저 한자리 일때를 모두 1로 초기화 시켜주고 2자리 일때도 각각 구해주었다.그뒤 하나씩 늘려가며 이전값들이 팬린드롬이면서 양끝값을 비교하여 같으면 팬린드롬이고 이를 저장하여 다시 이용한다.작은 예를 들어보자num=[1,2,3,2,1] 이라는 배열이 주어졌을때 4*4의 dp를 만들어주고 초기화시킨다..
2020. 2. 9. 21:40
최근댓글