[카카오] 2020 KAKAO BLIND RECRUITMENT 1차 풀이 – 괄호 변환

이 포스팅에서는 2020 카카오 블라인드 채용 1차 문제인 ‘괄호 변환’ 문제를 해설합니다. 본 풀이에 대한 테스트는 https://programmers.co.kr/learn/courses/30/lessons/60058에서 수행하였으며 공식 풀이와 일치하지 않을 수 있습니다.

공식 풀이는 링크를 참조하시기 바랍니다.


괄호 변환

출처 : 2020 KAKAO 블라인드 채용 온라인 1차
링크 : https://programmers.co.kr/learn/courses/30/lessons/60058
카테고리 : 재귀 호출
난이도 : 쉬움


문제 요약

주어진 괄호 문자열을 올바른 괄호 문자열로 바꾸어 출력. 그 방법은 문제 설명에 같이 주어진다.

  1. 문자열이 빈 문자열이면 즉시 빈 문자열을 리턴한다.
  2. 최초의 ‘균형 잡힌 문자열’ (열기 괄호와 닫기 괄호의 수가 똑같음)을 찾아서 u에 저장하고, 나머지는 v에 저장한다.
  3. u가 ‘올바른 문자열’ (왼쪽부터 열기와 닫기 괄호를 셀 때 어떤 순간에도 닫기 괄호의 수가 열기 괄호의 수보다 많지 않은 문자열)이면 u는 그대로 두고 v에 대해 맨 처음부터 알고리즘을 수행한 결과를 계산해 u + v를 반환.
  4. u가 ‘올바르지 않은 문자열’이면 아래와 같은 작업을 반복한다.
    1. u의 가장 앞 뒤 문자열을 제거하고, 나머지 문자열에 대해 열기 괄호는 닫기 괄호로, 닫기 괄호는 열기 괄호로 바꾼다.
    2. v에 대해 알고리즘을 1번부터 다시 수행한다. process(v)
    3. “(” + process(v) + “)” + u를 리턴한다.

문제 풀이

주어진대로 코드를 짜면 된다.
여기서 구현할 것은 ‘재귀 호출’, ‘균형 잡힌 문자열’ 판별, ‘올바른 문자열’ 판별이다.

균형 잡힌 문자열 판별은 맨 처음에 cnt를 0으로 초기화하고 문자열 가장 처음부터 순차적으로 읽어가면서 열기 괄호면 1을 더하고, 닫기 괄호면 1을 뺀다. 이후 cnt가 0인지 체크하여 0이면 종료한다.

올바른 문자열 판별은 균형 잡힌 문자열과 같은 방식으로 진행하되, cnt가 -1이 되는 순간이 존재한다면 올바르지 않는 것으로 판별하고, 그렇지 않으면 올바른 것으로 판별하면 된다.


정답 코드

def get_reverse(s):
ret = “”
for i in range(1, len(s) 1):
if s[i] == ‘(‘:
ret += ‘)’
else:
ret += ‘(‘
return ret
def is_correct(s):
cnt = 0
for c in s:
if c == ‘(‘:
cnt += 1
else:
cnt = 1
if cnt < 0:
return False
return True
def do(s):
if len(s) == 0:
return “”
i, cnt = 0, 0
while True:
if s[i] == ‘(‘:
cnt += 1
else:
cnt = 1
i += 1
if cnt == 0:
break
u, v = s[:i], s[i:]
if is_correct(u):
return u + do(v)
else:
return ‘(‘ + do(v) + ‘)’ + get_reverse(u)
def solution(p):
return do(p)
cs

Competition 카카오 블라인드 채용 문자열 압축

admin

Recent Posts

2025년 10월 12일 일요일 – 서울 생활 176주차

AI AI Agent들이 어느 정도 유용한 건 맞지만, 생각보다 성능이 그렇게 시원찮은지는 모르겠다. 특히나 코드…

2개월 ago

2025년 9월 21일 일요일 – 서울 생활 173주차

중간 점검 시간이 얼마나 빠른지 여름이 훌쩍 지나 3분기는 이제 겨우 한 주가 남아, 올해의…

3개월 ago

2025년 9월 7일 일요일 – 서울 생활 171주차

금주 금주를 시작해보기로 했다. 이미 술을 먹기로 하고 잡은 2개의 회식들은 예외로 하고, 나머지 자리에서는…

3개월 ago

2025년 8월 31일 일요일 – 서울 생활 170주차

티앤미미 예약이 그렇게 힘들다는 티앤미미를 처남네가 운좋게 예약해서 어제 저녁 다녀왔다. 딤섬이 그렇게 맛있다고 하는데,…

3개월 ago

2025년 8월 17일 일요일 – 서울 생활 168주차

아난티 부산 시설과 고객 서비스가 이렇게 극단적으로 다른 방향인 호텔이 있을까 싶다. 시설의 퀄리티는 5성급이라기에…

4개월 ago

2025년 8월 3일 일요일 – 서울 생활 166주차

스트레스 관리 ENTJ 성격 특인지는 몰라도, 나는 계획했던 일에 변수가 생기면 그 순간 큰 스트레스를…

4개월 ago

This website uses cookies.