Problem Solving/프로그래머스 4

[Level 2 프로그래머스] 카카오 기출, 2020 KAKAO BLIND RECRUITMENT - 괄호 변환(Python 파이썬)

코딩테스트 연습 - 괄호 변환 카카오에 신입 개발자로 입사한 콘은 선배 개발자로부터 개발역량 강화를 위해 다른 개발자가 작성한 소스 코드를 분석하여 문제점을 발견하고 수정하라는 업무 과제를 받았습니다. 소스를 컴 programmers.co.kr 카카오 기출문제이다. 괄호 관련된 문제가 약해서 풀어보려는데, 역시나 실수가 많이 나왔다. 막상 다 풀고보면 문제에 있는 말 그대로를 구현하는 것인데.. 아직 구현력이 부족한 듯 하다. 문제 조건 입력이 빈 문자열인 경우, 빈 문자열을 반환합니다. 문자열 w를 두 "균형잡힌 괄호 문자열" u, v로 분리합니다. 단, u는 "균형잡힌 괄호 문자열"로 더 이상 분리할 수 없어야 하며, v는 빈 문자열이 될 수 있습니다. 문자열 u가 "올바른 괄호 문자열" 이라면 문자..

[Level 2 프로그래머스] 카카오 기출, 2020 KAKAO BLIND RECRUITMENT - 문자열 압축(Python)

programmers.co.kr/learn/courses/30/lessons/60057 코딩테스트 연습 - 문자열 압축 데이터 처리 전문가가 되고 싶은 어피치는 문자열을 압축하는 방법에 대해 공부를 하고 있습니다. 최근에 대량의 데이터 처리를 위한 간단한 비손실 압축 방법에 대해 공부를 하고 있는데, 문자 programmers.co.kr 문제 제목에 나와있듯이 문자열을 파싱하는 문제이다. 문자열의 최대 길이가 1000이므로 완전탐색으로 해도 충분했다. 문제 해결 문자열의 길이가 n이라고 한다면, 문자열을 1부터 n/2개 까지 나눈다 나눈 문자열을 리스트에 넣는다, 리스트에 들어간 n개씩 자른 문자열을 앞뒤로 비교해가며 같다면 1씩 늘린다. 비교 과정에서 문자열이 다르다면 반복횟수와 반복문자열을 붙인다 이..

[Level 4 프로그래머스] 카카오 기출, 2020 KAKAO BLIND RECRUITMENT - 가사 검색(Python)

programmers.co.kr/learn/courses/30/lessons/60060 코딩테스트 연습 - 가사 검색 programmers.co.kr 트라이(Trie) 자료형을 사용하여 풀 수도 있지만, 이분탐색을 사용해서 풀어보았다. 이분탐색은 따로 구현하지 않고 Python의 bisect 라이브러리를 활용하였다. 문제 해결 2개의 배열을 사용한다. 각각 주어진 단어, 단어의 순서를 반대로 한 단어를 리스트에 추가한다. 예를들면 "frodo"라는 단어를 "frodo"와 "odorf"로 나누어 각각의 배열에 담는다. 단어의 순서를 바꾸는 것은 word[::-1] 을 하여 append 하면 거꾸로 담긴다 각 배열을 이분탐색을 하기 위해 정렬한다. queries가 접미사인지, 접두사인지 구분하고 그에 맞게 ..

[Level 3 프로그래머스] - 베스트 앨범 (C++)

programmers.co.kr/learn/courses/30/lessons/42579 코딩테스트 연습 - 베스트앨범 스트리밍 사이트에서 장르 별로 가장 많이 재생된 노래를 두 개씩 모아 베스트 앨범을 출시하려 합니다. 노래는 고유 번호로 구분하며, 노래를 수록하는 기준은 다음과 같습니다. 속한 노래가 �� programmers.co.kr 해시 자료구조를 사용하는 문제였다. 해시의 특성상 key값을 기준으로 오름차순 정렬이 되는게 기본인데, 문제에서 요구하는 대로 정렬을 하기 위해서는 정렬 함수를 따로 만들어줘야 한다. 문제에서 제시하는 노래를 수록하는 기준은 다음과 같다. 속한 노래가 많이 재생된 장르를 먼저 수록합니다. 장르 내에서 많이 재생된 노래를 먼저 수록합니다. 장르 내에서 재생 횟수가 같은 ..