[백준] 1509번 : 펠린드롬 분할
1509번: 팰린드롬 분할 1509번: 팰린드롬 분할 세준이는 어떤 문자열을 팰린드롬으로 분할하려고 한다. 예를 들어, ABACABA를 팰린드롬으로 분할하면, {A, B, A, C, A, B, A}, {A, BACAB, A}, {ABA, C, ABA}, {ABACABA}등이 있다. 분할의 개수의 최솟값을 출력하 www.acmicpc.net 🤔 문제분석 팰린드롬의 분할개수의 최소값을 구하는 문제로, 지정된 start와 end에서 팰린드롬인지 아닌지 판별을 우선 해야한다. 아래의 예로 ABBAAB의 최소 팰린드롬의 개수를 구하는 과정을 보면 이전에 구했던 A, AB, ABB, ABBA … 가 최소개수를 가지고 있어야한다. X라고 표기된건 현재 팰린드롬이 아니라 무시한다. 💻 코드 import sys inpu..
[백준] 2169번 : 로봇 조종하기
2169번: 로봇 조종하기 🤔 문제분석 이 유형 또한 다이나믹 프로그래밍 응용 문제로, 왼쪽, 오른쪽, 아래쪽으로만 이동 할 수 있는 것을 잘 분석하여 문제를 해결하는 것이 Key Point 이다. 맨위의 행에서는 오른쪽으로만 이동 할 수 밖에 없다, 그 이후의 행에서는 위에서 온경우, 오른쪽에서 온경우, 왼쪽에서 온경우 모두 다 따져봐야한다. 각각의 왼쪽, 오른쪽, 위쪽에서의 값은 항상 최대값을 갖게 만들어야한다. 💻 코드 import sys INF = -int(1e10) input = sys.stdin.readline N, M = map(int, input().split()) table = [list(map(int, input().split())) for _ in range(N)] dp = [[INF..