10422번 - 괄호
안녕하세요 DP 접근 방법에 대해 여쭤보고싶습니다.
우선 상태를 4가지로 나눠서
S -> 올바른 괄호열
[1] -> ()S
[2] -> S()
[3] -> (S)
[4] -> ()S()
이렇게 나누고
d[i][1] = d[i-2][1] + d[i-2][3]; -> i 길이고 ()S 이런 모양일 경우 = i-2 길이고 ()S 모양인 경우 + i-2 길이고 (S) 모양인 경우 ..
d[i][2] = d[i-2][2] + d[i-2][3];
d[i][3] = d[i-2][1] +d[i-2][2] + d[i-2][3]+ d[i-2][4];
d[i][4] = d[i-4][1] +d[i-4][2]+d[i-4][3]+ d[i-4][4];
이런식으로 접근했는데
바보같은 접근법인가여?
문제를 맞히셨다면 채점 현황이나 맞은 사람 탭에서 문제를 공개한 사람들의 코드를 볼 수 있습니다. 길이가 짧은 코드를 보면 대체로 더 간략한 식을 사용하고 있지 않을까요?
아 이렇게 접근한 사람은 못본거같아서요 ㅠㅠ 감사합니다
접근 방법을 모르시겠으면 카탈란 수 를 검색해보세요.
많은 문제가 같은 풀이로 풀리고 (의미가 같고)
심지어 생성함수가 있어서 O(1) 구할 수 도 있어요.
댓글을 작성하려면 로그인해야 합니다.
shp9408 5년 전
안녕하세요 DP 접근 방법에 대해 여쭤보고싶습니다.
우선 상태를 4가지로 나눠서
S -> 올바른 괄호열
[1] -> ()S
[2] -> S()
[3] -> (S)
[4] -> ()S()
이렇게 나누고
d[i][1] = d[i-2][1] + d[i-2][3]; -> i 길이고 ()S 이런 모양일 경우 = i-2 길이고 ()S 모양인 경우 + i-2 길이고 (S) 모양인 경우 ..
d[i][2] = d[i-2][2] + d[i-2][3];
d[i][3] = d[i-2][1] +d[i-2][2] + d[i-2][3]+ d[i-2][4];
d[i][4] = d[i-4][1] +d[i-4][2]+d[i-4][3]+ d[i-4][4];
이런식으로 접근했는데
바보같은 접근법인가여?