-
[프로그래머스][Kotlin] 2020 카카오 인턴십 보석 쇼핑프로그래머스 2023. 4. 2. 22:15728x90
해당 문제는 이분탐색과 HashMap를 이용하면 쉽게 풀 수 있는 문제였습니다.
하기는 제가 작성한 코드와 실행 결과 입니다.
class Solution { fun solution(gems: Array<String>): IntArray { var answer = intArrayOf() var map = HashMap<String,Int>() gems.forEach { map.put(it,0) } val max = map.size map = HashMap<String,Int>() var left = 0 var right = 0 var min = gems.size while(right < gems.size){ if(map.containsKey(gems[right])){ map[gems[right]] = map[gems[right]]!! + 1 } else { map[gems[right]] = 1 } right++ while(map.size == max){ map[gems[left]] = map[gems[left]]!!-1 if(map[gems[left]] == 0){ map.remove(gems[left]) } left++ if(right-left < min){ min = right - left answer = intArrayOf(left,right) } } } return answer } }
정확성 테스트테스트 1 〉 통과 (0.10ms, 61.9MB) 테스트 2 〉 통과 (1.48ms, 59.4MB) 테스트 3 〉 통과 (0.49ms, 60.3MB) 테스트 4 〉 통과 (0.42ms, 61.4MB) 테스트 5 〉 통과 (1.00ms, 61MB) 테스트 6 〉 통과 (0.06ms, 61.7MB) 테스트 7 〉 통과 (0.11ms, 61.5MB) 테스트 8 〉 통과 (1.18ms, 60.4MB) 테스트 9 〉 통과 (1.63ms, 61.7MB) 테스트 10 〉 통과 (0.74ms, 61.9MB) 테스트 11 〉 통과 (1.61ms, 60.3MB) 테스트 12 〉 통과 (1.54ms, 61.8MB) 테스트 13 〉 통과 (1.87ms, 62.8MB) 테스트 14 〉 통과 (1.63ms, 61.8MB) 테스트 15 〉 통과 (3.25ms, 64.4MB) 효율성 테스트테스트 1 〉 통과 (7.78ms, 59.1MB) 테스트 2 〉 통과 (21.05ms, 61.5MB) 테스트 3 〉 통과 (17.62ms, 62.6MB) 테스트 4 〉 통과 (17.31ms, 66.9MB) 테스트 5 〉 통과 (35.98ms, 68.1MB) 테스트 6 〉 통과 (37.73ms, 69.1MB) 테스트 7 〉 통과 (46.58ms, 70.3MB) 테스트 8 〉 통과 (36.56ms, 72.3MB) 테스트 9 〉 통과 (44.94ms, 78.9MB) 테스트 10 〉 통과 (44.37ms, 80.5MB) 테스트 11 〉 통과 (50.16ms, 81.6MB) 테스트 12 〉 통과 (90.55ms, 85.5MB) 테스트 13 〉 통과 (49.01ms, 84.9MB) 테스트 14 〉 통과 (57.97ms, 84.3MB) 테스트 15 〉 통과 (62.94ms, 84.5MB) '프로그래머스' 카테고리의 다른 글
[프로그래머스][Kotlin] 과제 진행하기 (0) 2023.04.03 [프로그래머스][Kotlin] 추억 점수 (0) 2023.04.03 [프로그래머스][Kotlin]소수 찾기 (0) 2023.03.30 [프로그래머스][Kotlin] 공원 산책 (0) 2023.03.23 [프로그래머스][Kotlin] 리코쳇 로봇 (0) 2023.03.23