본문 바로가기

카카오30

[c++][프로그래머스] 가사 검색 프로그래머스 가사 검색 [2020 KAKAO BLIND RECRUITMENT] https://programmers.co.kr/learn/courses/30/lessons/60060 코딩테스트 연습 - 가사 검색 programmers.co.kr 문제 풀이 이 문제는 이분 탐색으로 해결했습니다. 만약 fro?? 라는 쿼리가 있다면 문자열을 비교하여 froaa - frozz 사이에 포함된 문자열의 개수를 세는 방식입니다. 이를 위해 upper_bound와 lower_bound를 사용했습니다. 물음표가 앞에 있는 ??odo 같은 쿼리의 경우, aaodo - zzodo의 사이가 되기 때문에 위의 논리를 그대로 적용하면 길이가 5인 거의 모든 문자열이 포함되게 됩니다. bakxj 와 같은 문자열도 사전 순으로는 위.. 2022. 2. 23.
[c++][프로그래머스] 자물쇠와 열쇠 프로그래머스 자물쇠와 열쇠 [2020 KAKAO BLIND RECRUITMENT] https://programmers.co.kr/learn/courses/30/lessons/60059 코딩테스트 연습 - 자물쇠와 열쇠 [[0, 0, 0], [1, 0, 0], [0, 1, 1]] [[1, 1, 1], [1, 1, 0], [1, 0, 1]] true programmers.co.kr 문제 풀이 이 문제는 2차원 Array를 다루는 문제입니다. key를 90도 씩 회전하면서 lock 위를 슬라이딩 하여 lock을 모두 채우는 경우가 있으면 true를 반환합니다. key를 슬라이딩 하는 방법은 다음 그림과 같습니다. (2*M + N - 2) 사이즈의 Array를 하나 선언하여 가운데에 lock영역을 두고(3번) .. 2022. 2. 22.
[c++][프로그래머스] 괄호 변환 프로그래머스 괄호 변환 [2020 KAKAO BLIND RECRUITMENT] https://programmers.co.kr/learn/courses/30/lessons/60058 코딩테스트 연습 - 괄호 변환 카카오에 신입 개발자로 입사한 "콘"은 선배 개발자로부터 개발역량 강화를 위해 다른 개발자가 작성한 소스 코드를 분석하여 문제점을 발견하고 수정하라는 업무 과제를 받았습니다. 소스를 programmers.co.kr 문제 풀이 1. 입력이 빈 문자열인 경우, 빈 문자열을 반환합니다. 2. 문자열 w를 두 "균형잡힌 괄호 문자열" u, v로 분리합니다. 단, u는 "균형잡힌 괄호 문자열"로 더 이상 분리할 수 없어야 하며, v는 빈 문자열이 될 수 있습니다. 3. 문자열 u가 "올바른 괄호 문자열" .. 2022. 2. 16.
[c++][프로그래머스] 문자열 압축 프로그래머스 문자열 압축 [2020 KAKAO BLIND RECRUITMENT] https://programmers.co.kr/learn/courses/30/lessons/60057# 코딩테스트 연습 - 문자열 압축 데이터 처리 전문가가 되고 싶은 "어피치"는 문자열을 압축하는 방법에 대해 공부를 하고 있습니다. 최근에 대량의 데이터 처리를 위한 간단한 비손실 압축 방법에 대해 공부를 하고 있는데, 문 programmers.co.kr 문제 풀이 이 문제는 문자열 처리 문제입니다. 1부터 str.length()/2까지 문자열을 잘라 압축해 보면서 가장 짧게 압축이 됐을 때 문자열의 길이를 리턴합니다. 압축 방법은 코드를 참고해주세요! 코드 #include #include using namespace std.. 2022. 2. 15.
[c++][프로그래머스] 매출 하락 최소화 프로그래머스 매출 하락 최소화 [2021 KAKAO BLIND RECRUITMENT] https://programmers.co.kr/learn/courses/30/lessons/72416 코딩테스트 연습 - 매출 하락 최소화 CEO를 포함하여 모든 직원은 팀장 또는 팀원이라는 직위를 가지고 있으며 그림에서는 팀장과 팀원의 관계를 화살표로 표시하고 있습니다. 화살표가 시작되는 쪽의 직원은 팀장, 화살표를 받는 programmers.co.kr 문제 풀이 문제 해결을 위해 다음의 시나리오를 DFS로 구현하였습니다. 각 사람별로 자신이 워크숍에 참석할 경우와 참석하지 않을 경우의 손해 비용을 계산합니다. 자신이 leaf node인 경우 내가 참석하지 않을 경우 -> 0원 내가 참석할 경우 -> 나의 하루평균 매.. 2022. 2. 14.
[c++][프로그래머스] 카드 짝 맞추기 프로그래머스 카드 짝 맞추기 [2021 KAKAO BLIND RECRUITMENT] https://programmers.co.kr/learn/courses/30/lessons/72415 코딩테스트 연습 - 카드 짝 맞추기 [[1,0,0,3],[2,0,0,0],[0,0,0,2],[3,0,1,0]] 1 0 14 [[3,0,0,2],[0,0,1,0],[0,1,0,0],[2,0,0,3]] 0 1 16 programmers.co.kr 문제 풀이 이 문제는 모든 카드 쌍을 어떤 순서로 제거할 것인지, 한 카드 쌍에서 두 개의 카드를 어떤 순서로 선택할 것인지를 완전 탐색하여 해결하였습니다. 모든 카드를 어떤 순서로 제거할 것인지 완전 탐색하기 위해 next_permutation을 사용했습니다. [1, 2, 3]의 .. 2022. 2. 12.