내용으로 건너뛰기
테페리넷
사용자 도구
등록
로그인
사이트 도구
검색
도구
문서 보기
Fold/unfold all
역링크
미디어 관리자
사이트맵
등록
로그인
>
미디어 관리자
사이트맵
현재 위치:
테페리넷
»
Problem Solving
»
문제
»
LeetCode
»
Generate Parentheses
ps:problems:leetcode:22
이 문서는 읽기 전용입니다. 원본을 볼 수는 있지만 바꿀 수는 없습니다. 문제가 있다고 생각하면 관리자에게 문의하세요.
====== Generate Parentheses ====== ===== 풀이 ===== * LeetCode 사이트에서 [[https://leetcode.com/problems/generate-parentheses/solution/|친절한 풀이]]를 제공한다 * 내 경우는 사이트 해설의 3번 어프로치를, DP 스타일로 재귀 호출을 쓰지 않도록 살짝 변형해서 풀었다. * 올바른 괄호를 모두 나열하는 것이 아니라, 갯수만 구하는 문제로는 [[ps:problems:boj:10422|괄호]]가 있다 * 왜 이게 카탈랑 수가 되는지는 그 문제를 참고. * 카탈랑 수의 일반항과 그 바운드를 계산하는 방법은 LeetCode의 풀이에서 생략되어 있는데, 그것에 관해서는 [[ps:카탈랑 수]]를 참고. ===== 코드 ===== <dkpr py> """Solution code for "LeetCode 22. Generate Parentheses". - Problem link: https://leetcode.com/problems/generate-parentheses/ - Solution link: http://www.teferi.net/ps/problems/leetcode/22 """ class Solution: def generateParenthesis(self, n: int) -> List[str]: par_lists = [[] for _ in range(n + 1)] par_lists[0] = [''] for i in range(1, n + 1): for j in range(i): left_list = par_lists[j] right_list = par_lists[i - j - 1] for l in left_list: par = '(' + l + ')' par_lists[i].extend([par + r for r in right_list]) return par_lists[n] </dkpr>
ps/problems/leetcode/22.txt
· 마지막으로 수정됨: 2020/11/27 12:27 저자
teferi
문서 도구
문서 보기
역링크
Fold/unfold all
맨 위로