쉬운듯 복잡한듯... 방법은 간단했다.
left(왼쪽괄호) right(오른쪽괄호) 의 개수를 하나씩 줄여가며 재귀함수를 실행시키고,
마지막엔 decode 함수를 불러와 프린트한다.
파이썬 짱 쉽고 간편하다 최고 인생은 짧으니 파이썬을 쓰도록 하자 야호
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | def parenthesis(left, right, code): if code == None: code = 1 parenthesis(left-1, right, code) else: if left != 0: if left < right: code *= 10 parenthesis(left-1, right, code+1) parenthesis(left, right-1, code) elif left == right: code *= 10 parenthesis(left-1, right, code+1) elif right != 0: code *= 10 parenthesis(left, right-1, code) else: decode(code) def decode(code): while(code != 0): if (code % 10) == 1: print(')', end=' ') elif (code % 10) == 0: print('(', end=' ') code = code // 10 print('') count = int(input("정수를 입력하세요 : ")) parenthesis(count, count, None) | cs |
아래는 결과창
반응형
'이론 > Python' 카테고리의 다른 글
mail_programming - 4주차 : 팰린드롬 판정하기 (0) | 2018.04.15 |
---|---|
mail_programming - 2주차 : N보다 작은 짝수 피보나치 수의 합 (0) | 2018.04.11 |
mail_programming - 1주차 : 연속되는 가장 큰 정수 (0) | 2018.04.08 |
댓글