일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- DateTime
- heapq
- 백준
- 카카오
- divmod
- 위클리 챌린지
- KAKAO BLIND RECRUITMENT
- python
- programmers
- Set
- java
- 재귀함수
- backjoon
- 파이썬
- dfs
- 정렬
- 자바
- 정규식
- Combinations
- 다익스트라
- BFS
- Re
- 추석맞이 코딩챌린지
- 프로그래머스
- 수학
- lambda
- 그리디
- 이분탐색
- Zip
- 동적 계획법
Archives
- Today
- Total
상상쓰
[프로그래머스] 괄호 변환 본문
https://programmers.co.kr/learn/courses/30/lessons/60058
코딩테스트 연습 - 괄호 변환
카카오에 신입 개발자로 입사한 "콘"은 선배 개발자로부터 개발역량 강화를 위해 다른 개발자가 작성한 소스 코드를 분석하여 문제점을 발견하고 수정하라는 업무 과제를 받았습니다. 소스를
programmers.co.kr
균형잡힌 괄호 문자열, c == 0
올바른 괄호 문자열, t = True
를 가지고 문제의 4단계를 재귀함수를 이용해 진행하면 된다.
def solution(p):
answer = ''
if p != '':
n = len(p)
c = 0
t = True
for i in range(n):
c = c + 1 if p[i] == '(' else c - 1
if c < 0: t = False
if c == 0:
if t:
return p[:i+1] + solution(p[i+1:])
else:
return '(' + solution(p[i+1:]) + ')' + ''.join(['(' if i == ')' else ')' for i in p[1:i]])
else:
return answer
print(solution('(()())()')) # (()())()
'Coding Test' 카테고리의 다른 글
[프로그래머스] 4주차_직업군 추천하기 (0) | 2021.08.23 |
---|---|
[프로그래머스] 실패율 (0) | 2021.08.22 |
[프로그래머스] 메뉴 리뉴얼 (0) | 2021.08.20 |
[프로그래머스] 문자열 압축 (0) | 2021.08.20 |
[프로그래머스] 신규 아이디 추천 (0) | 2021.08.19 |
Comments