https://school.programmers.co.kr/learn/courses/30/lessons/12929
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
프로그래머스 - 올바른 괄호의 갯수 (12929번)
난이도 : Lv 4
Time Complexity : O( N^2 )
def solution(n):
memo = [0] * (n+1)
memo[0] = memo[1] = 1
for i in range(2, n+1):
memo[i] = sum(memo[j] * memo[i-1-j] for j in range(i))
return memo[n]
★ 괄호의 쌍이 n개일 때 만들 수 있는 경우의 수를 f(n) 이라고 하면,
f(n)의 값은 아래와 같은 규칙을 따른다.
f(0) = 1
f(1) = 1
f(2) = f(1)*f(0) + f(0)*f(1)
f(3) = f(2)*f(0) + f(1)*f(1) + f(0)*f(2)
f(4) = f(3)*f(0) + f(2)*f(1) + f(1)*f(2) + f(0)*f(3)
...
위와 같이 나타나는 이유는 아래와 같다.
f(2)
- ( f(0) ) f(1)
- ( f(1) ) f(0)
f(3)
- ( f(0) ) f(2)
- ( f(1) ) f(1)
- ( f(2) ) f(0)
f(4)
- ( f(0) ) f(3)
- ( f(1) ) f(2)
- ( f(2) ) f(1)
- ( f(3) ) f(0)
...
'Algorithm' 카테고리의 다른 글
선분 교차 3 (20149번) - 백준 (BOJ) (0) | 2023.07.31 |
---|---|
스티커 모으기(2) (12971번) - 프로그래머스 (Programmers) (0) | 2023.07.31 |
이항 계수 3 (11401번) - 백준 (BOJ) (0) | 2023.07.29 |
Contact (1013번) - 백준 (BOJ) (0) | 2023.07.28 |
오아시스 재결합 (3015번) - 백준 (BOJ) (0) | 2023.07.28 |