코딩테스트 문제 (17) - 실패율
카카오 2019 블라인드 코딩테스트 기출문제입니다. 문제 1. N = 5, stages = [2,1,2,6,2,4,3,3] => [3,4,2,1,5] 2. N = 4, stages = [4,4,4,4,4] => [4,1,2,3] 풀이 1번 케이스는 다음과 같습니다. 1번 문제에 대해서 8명에 사용자가 도전하여 1명의 사용자가 클리어를 하지 못했으므로 실패율은 1/8이 됩니다. 2번 문제에 대해서는 7명의 사용자가 도전하여 3명이 클리어를 하지 못했으므로 실패율은 2/7이 됩니다. 이런식으로 각 문제에 대해 실패율을 계산하여 실패율이 높은 스테이지부터 나열하는 문제입니다. 각 stage마다 실패율을 담은 배열을 작성한 뒤 정렬하면 간단하게 풀리는 문제입니다. kaggle.com의 notebook으로 작성한..
코딩테스트 문제 (15) - 캐시
카카오 2018 블라인드 코딩테스트 기출문제입니다. 문제 1. cacheSize = 3, cities = ["Jeju", "Pangyo", "Seoul", "NewYork", "LA", "Jeju", "Pangyo", "Seoul", "NewYork", "LA"] => 50 2. cacheSize = 3, cities = ["Jeju", "Pangyo", "Seoul", "Jeju", "Pangyo", "Seoul", "Jeju", "Pangyo", "Seoul"] => 21 3. cacheSize = 2, cities = ["Jeju", "Pangyo", "Seoul", "NewYork", "LA", "SanFrancisco", "Seoul", "Rome", "Paris", "Jeju", "NewYor..
코딩테스트 문제 (13) - 부분 집합
문제 입력으로 주어진 배열에 대해 부분 집합을 return하는 문제입니다. 1. array = [1,2,3] => [[],[1],[2],[3],[1,2],[1,3],[2,3],[1,2,3]] 풀이 먼저 결과 형식은 리스트 안에 부분집합을 추가하는 형태입니다. 배열을 for 루프로 순회하면서 공집합부터 ([]) 추가하고 첫 번째 원소 1에 대해서 [1], [1,2], [1,2,3], [1,3] 을 추가하고 그 다음 원소 2에 대해 [2],[2,3] 을 추가하는 식을 생각해볼 수 있겠네요. 바로 그래프의 깊이우선탐색 (dfs) 를 이용하면 풀이가 가능합니다. kaggle.com의 notebook으로 작성한 풀이는 다음과 같습니다. 홍머스 정리 난이도: 중, 그래프 구조를 생각해야 한다. 참조 , p355-3..
코딩테스트 문제 (11) - 비밀 지도
카카오 2018년 블라인드 코딩테스트 1번 문제입니다. 바로 문제부터 보겠습니다. 문제 1. array1 = [9,20,28,18,11], array2 = [30,1,21,17,28] => ['#####','# # #','### #','# ## ','#####'] 2. array1 = [46,33,33,22,31,50], array2 = [27,56,19,14,14,10] => ['######','### # ','## ## ',' #### ',' #####','### # '] 풀이 지도의 각 위치마다 두 개의 지도에서 어느 하나라도 '#' 이 있을 경우 '#'이고 모두 공백일 경우 공백으로 처리하는 부분에서 OR (|) 오퍼레이션을 사용하는 것을 알 수 있습니다. 파이썬의 bin은 정수를 이진화를 시켜줍..
코딩테스트 문제 (10) - 배열의 K 번째 큰 요소
제목 그대로 주어진 배열이 있을 때, 배열의 K 번째 큰 요소를 return하면 되는 문제입니다. 문제 1. array=[3,2,3,1,2,4,5,5,6], K=4 => 4 풀이 주어진 배열의 우선순위를 기반으로 가장 큰 값부터 K번 추출하면 되는 간단한 문제입니다. 힙을 사용해 쉽게 구현할 수 있습니다. kaggle.com의 notebook으로 작성한 풀이는 다음과 같습니다. 홍머스 정리 힙, heapq 난이도: 하 참조 , p456-457