코딩테스트/카카오 기출

카카오 2020 코딩테스트 괄호 변환 해설/코드 (파이썬), 간단한 재귀 구현 문제

RyanKwon 2022. 1. 15. 14:00
728x90

전체 코드가 궁금한 분은 깃허브링크 눌러주세요!!

문제 설명 ㄱ

 

코딩테스트 연습 - 괄호 변환

카카오에 신입 개발자로 입사한 "콘"은 선배 개발자로부터 개발역량 강화를 위해 다른 개발자가 작성한 소스 코드를 분석하여 문제점을 발견하고 수정하라는 업무 과제를 받았습니다. 소스를

programmers.co.kr

 

Lv2짜리 문제라 40분 안에는 풀어야겠다고 생각하고 푼 문제인데 다행히 딱! 40분 맞춰서 풀었다.

 

문제 풀이 논리

 

.. 진짜 그냥 하라고 하는대로 하면 되서.. 그나마 신경 쓸 부분을 따져보면

 

1. 전체 프로그램 자체를 재귀로 짜야 한다. 3-1이나 4-5에서 반환을 하게 되는데 1단계부터 재귀적으로 수행한 결과를 활용하라고 계속 문제설명에 나오기 때문에, 나는 처음에 while로 풀고 일부 부분만 재귀로 풀면 어떨까 했는데 역시 전체 프로그램을 재귀로 짜야 한다.

2. u, v로 두개의 문자열을 구성할 때 두개 모두 균형잡힌 괄호문자열이어야 하기 때문에 u가 균-괄-문이라고 해도 v도 균-괄-문인지 확인하는 절차가 필요하다.

 

2번은 진짜 억지로 짜낸거라 ㅋㅋㅋ그냥 문제에서 말하는 대로 하면 된다. 사실 저 문제에 주어진 변환 논리를 이해하려고 해본 적도 없고 이해하지도 못했다. 근데 그냥 그렇게 하라길래 했더니..되네! 

 

 

 

----잡담----

 

나는 메인함수를 재귀로 짜본적은 별로 없어서, 사실 처음에는 def solution()안에 program()이라는 함수를 만들어서 그 함수를 재귀로 돌렸었다. 근데 문제를 다풀고 통과까지 하고 나서 다시 코드를 보니까..

def solution(p):
    return program(p)

solution 함수가 이렇게 돼있어서..ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ 어 이거 뭐지...하고 그냥 program을 solution으로 바꿨다.... 당연히, 된다.ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ 그냥 웃겨서 씀. 이거 코딩공부 좀 했다 싶은 사람들은 솔직히 웃길 포인트인데.. 이 글을 읽으시는 분들.. 좀 웃겻나요? ㅎㅋ

728x90