From 0edd4743035045db2346f11616c83eef8ef71fce Mon Sep 17 00:00:00 2001 From: Seongbeom Park Date: Sun, 28 Apr 2024 16:28:31 +0900 Subject: [PATCH] =?UTF-8?q?solve=20=EC=98=AC=EB=B0=94=EB=A5=B8=20=EA=B4=84?= =?UTF-8?q?=ED=98=B8=EC=9D=98=20=EA=B0=AF=EC=88=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- run.py | 1 + 올바른괄호의갯수/README.md | 18 ++++++++++++++++++ 올바른괄호의갯수/solution.py | 28 ++++++++++++++++++++++++++++ 올바른괄호의갯수/test.py | 12 ++++++++++++ 4 files changed, 59 insertions(+) create mode 100644 올바른괄호의갯수/README.md create mode 100644 올바른괄호의갯수/solution.py create mode 100644 올바른괄호의갯수/test.py diff --git a/run.py b/run.py index a47ec8c..c00155d 100644 --- a/run.py +++ b/run.py @@ -11,6 +11,7 @@ problems = [ '디스크컨트롤러', '점찍기', '합승택시요금', + '올바른괄호의갯수', ] if __name__ == '__main__': diff --git a/올바른괄호의갯수/README.md b/올바른괄호의갯수/README.md new file mode 100644 index 0000000..b1470c0 --- /dev/null +++ b/올바른괄호의갯수/README.md @@ -0,0 +1,18 @@ +# [올바른 괄호의 갯수](https://school.programmers.co.kr/learn/courses/30/lessons/12929) +## 문제 설명 +올바른 괄호란 (())나 ()와 같이 올바르게 모두 닫힌 괄호를 의미합니다. )(나 ())() 와 같은 괄호는 올바르지 않은 괄호가 됩니다. 괄호 쌍의 개수 n이 주어질 때, n개의 괄호 쌍으로 만들 수 있는 모든 가능한 괄호 문자열의 갯수를 반환하는 함수 solution을 완성해 주세요. + +## 제한사항 +괄호 쌍의 개수 N : 1 ≤ n ≤ 14, N은 정수 + +## 입출력 예 +n result +2 2 +3 5 + +## 입출력 예 설명 +### 입출력 예 #1 +2개의 괄호쌍으로 [ "(())", "()()" ]의 2가지를 만들 수 있습니다. + +### 입출력 예 #2 +3개의 괄호쌍으로 [ "((()))", "(()())", "(())()", "()(())", "()()()" ]의 5가지를 만들 수 있습니다. diff --git a/올바른괄호의갯수/solution.py b/올바른괄호의갯수/solution.py new file mode 100644 index 0000000..89dbf9f --- /dev/null +++ b/올바른괄호의갯수/solution.py @@ -0,0 +1,28 @@ +def solution(n): + nodes = [1] + for i in range(n-1): + # print(i, nodes) + next_nodes = [] + for node in nodes: + next_nodes += [j for j in range(1, node + 2)] + nodes = next_nodes + # print(i+1, nodes) + return len(nodes) + +''' +() +()() (()) +()()() (())() (()()) ()(()) ((())) +()()()() (())()() (()())() (()()()) ()(())() ((()))() ((())()) ()(()()) ((()())) ()()(()) (())(()) (()(())) ()((())) (((()))) + +1 +11 2 +111 21 3 12 3 +1111 211 31 4 121 31 4 13 4 112 22 4 13 4 + + +1 +2 1 +3 2 1 2 1 +4 3 2 1 3 2 1 2 1 3 2 1 2 1 +''' \ No newline at end of file diff --git a/올바른괄호의갯수/test.py b/올바른괄호의갯수/test.py new file mode 100644 index 0000000..76ff237 --- /dev/null +++ b/올바른괄호의갯수/test.py @@ -0,0 +1,12 @@ +from solution import solution + +test_cases = [ + [[2], 2], + [[3], 5], + [[4], 14], +] + +for i, o in test_cases: + print('input', *i, 'output', o) + print('solution', solution(*i)) + print()