본문 바로가기
반응형

Problem Solving/카카오 블라인드 기출33

2020 - 기둥과 보 설치 https://programmers.co.kr/learn/courses/30/lessons/60061 코딩테스트 연습 - 기둥과 보 설치 5 [[1,0,0,1],[1,1,1,1],[2,1,0,1],[2,2,1,1],[5,0,0,1],[5,1,0,1],[4,2,1,1],[3,2,1,1]] [[1,0,0],[1,1,1],[2,1,0],[2,2,1],[3,2,1],[4,2,1],[5,0,0],[5,1,0]] 5 [[0,0,0,1],[2,0,0,1],[4,0,0,1],[0,1,1,1],[1,1,1,1],[2,1,1,1],[3,1,1,1],[2,0,0,0],[1,1,1,0],[2,2,0,1]] [[ programmers.co.kr [ 문제풀이 ] 별다른 알고리즘 필요 없이 주어진 조건대로 구현하면 되는 문제지만 .. 2021. 8. 8.
2020 - 가사 검색 https://programmers.co.kr/learn/courses/30/lessons/60060 코딩테스트 연습 - 가사 검색 programmers.co.kr [ 문제풀이 ] Trie 자료구조를 활용하는 문제이다. 모든 문자열에 대해서 정방향, 역방향 Trie를 구성해 준 후 쿼리를 해주면 된다. ​각각 한 개의 Trie를 통해 문자열을 관리해줘서 해결할 수도 있지만 문자열의 길이에 따라 쿼리 값이 결정되기 때문에 조금 구현하기가 난해할 것이다. ​이를 위해 모든 문자열의 길이만큼 Trie 자료구조를 구현해준다. 문자열이 최대 10000이기 때문에 2만 개의 Trie를 구현해준다. ​이렇게 구현한 후 쿼리를 하게 되면 "????" 형태의 모든 문자열이 '?'인 경우만 별도로 처리해주면 해결할 수 있.. 2021. 8. 8.
2020 - 자물쇠와 열쇠 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 [ 문제풀이 ] 4방향 회전한 Key로 자물쇠 Lock을 채울 수 있는지를 확인하는 전형적인 완전 탐색 문제이다. key를 회전하는 것은 쉬운데 회전한 후 lock과 어떻게 비교할 것인지가 조금 난해한 문제이다. ​모든 key를 주어진 lock으로 비교하기에는 인덱스 관리하기가 상당히 까다롭다. 이를 쉽게 해결하기 위해 기존의 lock을 확장시켜 인덱스를 넓혀주도록 하자. Key의 크기 M은 항상 lock의 크.. 2021. 8. 8.
2020 - 괄호 변환 https://programmers.co.kr/learn/courses/30/lessons/60058 코딩테스트 연습 - 괄호 변환 카카오에 신입 개발자로 입사한 "콘"은 선배 개발자로부터 개발역량 강화를 위해 다른 개발자가 작성한 소스 코드를 분석하여 문제점을 발견하고 수정하라는 업무 과제를 받았습니다. 소스를 programmers.co.kr [ 문제풀이 ] 주어진 조건 그래도 구현하기만 하면 되는 정말 간단한 문제이다. 문제에서 "이렇게 구현하면 된다!"라고 가이드라인을 명시해놨기 때문에 그대로 따라서 구현해주면 되는 문제이다. ​'(', ')'로 이루어진 문자열이 올바른 괄호 문자열인지 판단하는 방법은 Stack 자료구조를 배울 때 아마 접해봤을 것이다. 너무나 잘 알려진 알고리즘이기 때문에 따로 .. 2021. 8. 8.
2020 - 문자열 압축 https://programmers.co.kr/learn/courses/30/lessons/60057# 코딩테스트 연습 - 문자열 압축 데이터 처리 전문가가 되고 싶은 "어피치"는 문자열을 압축하는 방법에 대해 공부를 하고 있습니다. 최근에 대량의 데이터 처리를 위한 간단한 비손실 압축 방법에 대해 공부를 하고 있는데, 문 programmers.co.kr [ 문제풀이 ] 주어진 문자열을 1부터 문자열의 절반까지 압축하여 최소 길이를 찾으면 되는 문제이다. ​주의해야 할 점은 압축하는 위치?이다. 입출력 예 #5를 보면 알겠지만 압축은 무조건 제일 앞에서 압축할 길이만큼씩 진행한다. ​또한, 문자열의 최대 길이가 1000이기 때문에 중복된 횟수는 1~1000까지 나타날 수 있다. 따라서 중복된 횟수에 따라.. 2021. 8. 8.
2019 - 블록 게임 https://programmers.co.kr/learn/courses/30/lessons/42894# 코딩테스트 연습 - 블록 게임 [[0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,4,0,0,0],[0,0,0,0,0,4,4,0,0,0],[0,0,0,0,3,0,4,0,0,0],[0,0,0,2,3,0,0,0,5,5],[1,2,2,2,3,3,0,0,0,5],[1,1,1,0,0,0,0,0,0,5]] 2 programmers.co.kr [ 문제풀이 ] 2019 카카오 블라인드 기출 마지막 문제로 전형적인 완전 탐색 문제이다. 모든 블록을 하나씩 비교해가면서 제거할 수 있다면 제거.. 2021. 8. 8.
2019 - 매칭 점수 https://programmers.co.kr/learn/courses/30/lessons/42893 코딩테스트 연습 - 매칭 점수 매칭 점수 프렌즈 대학교 조교였던 제이지는 허드렛일만 시키는 네오 학과장님의 마수에서 벗어나, 카카오에 입사하게 되었다. 평소에 관심있어하던 검색에 마침 결원이 발생하여, 검색개발팀 programmers.co.kr [ 문제풀이 ] 주어진 page에서 원하는 문자열을 파싱할 수 있는지를 물어보는 문제인 것 같다. 효율성이 없는 문제이기 때문에 그냥 전체 문자열에서 indexOf 메서드를 활용하여 원하는 문자열을 추출하면 해결할 수 있다. ​어떻게 보면 문자열만 추출하면 되는 단순한 문제이지만 문제에 조건이 꽤 있기 때문에 꼼꼼하게 읽어야 한다. word는 영문자로만 구분한다는.. 2021. 8. 8.
2019 - 길 찾기 게임 https://programmers.co.kr/learn/courses/30/lessons/42892 코딩테스트 연습 - 길 찾기 게임 [[5,3],[11,5],[13,3],[3,5],[6,1],[1,3],[8,6],[7,2],[2,2]] [[7,4,6,9,1,8,5,2,3],[9,6,5,8,1,4,3,2,7]] programmers.co.kr [ 문제풀이 ] 주어진 노드의 정보를 가지고 이진트리를 구성할 수 있다면 해결할 수 있는 문제이다. ​노드의 정보는 2차원 좌표에서의 x, y 값이며 모든 노드는 서로 다른 x 값을 가진다. 즉, 1. y가 큰 순, 2. x가 작은 순으로 정렬을 한 후 이진트리의 특징으로 노드들을 하나씩 연결해서 이진트리를 구성해 줄 수 있다. ​이진 트리에서의 전위 순회와 후위.. 2021. 8. 8.
2019 - 무지의 먹방 라이브 https://programmers.co.kr/learn/courses/30/lessons/42891# 코딩테스트 연습 - 무지의 먹방 라이브 programmers.co.kr [ 문제풀이 ] K 초동안 모든 음식을 순서대로 탐색한다면 정확성은 해결할 수 있지만 K가 최대 2 x 10^13이기 때문에 효율성은 통과할 수 없다. 그렇다면 어떻게 해야 효율성을 통과할 수 있을까? ​나는 보통 효율성 문제 같은 경우 제일 먼저 정렬을 해보는 편이다. K = 7, food_times가 [3, 1, 2, 2, 5]일 경우 food_times이 낮은 순으로 정렬해보자. 이전의 매초마다 food_times를 하나씩 없애는 방법을 조금 더 빨리 처리할 수는 없을까? 현재 가장 낮은 food_times는 1이다. 오름차순.. 2021. 8. 8.
반응형