-
[프로그래머스][Kotlin] 카드 뭉치프로그래머스 2023. 2. 17. 14:52728x90
class Solution { fun solution(cards1: Array<String>, cards2: Array<String>, goal: Array<String>): String { var answer = "Yes" var idx1 = 0 var idx2 = 0 goal.forEach { if(idx1 < cards1.size && cards1[idx1] == it){ idx1++ } else if(idx2 < cards2.size && cards2[idx2] == it){ idx2++ } else { return "No" } } return answer } }
상기 코드로 바로 통과한것은 아니지만 통과한 코드가 맘에 들지 않아 다시 작성하였습니다.
처음에는 작성했었던 코드는 cards1과 cards2 를 mutableList로 만든 뒤 goal 과 일치한다면 삭제하는 방식으로 작성하였었으나 굳이 삭제를 하지 않고 조회하는 인덱스만 수정하면 될 것 같다는 생각이 들어 다시 작성하였었습니다.
그렇게 해보니 작업량이 줄어 실행시간도 매우 단축됨을 알 수 있었습니다.
상기코드의 실행 결과 입니다.
테스트 1 〉 통과 (0.03ms, 61.5MB) 테스트 2 〉 통과 (0.02ms, 62.2MB) 테스트 3 〉 통과 (0.02ms, 62.1MB) 테스트 4 〉 통과 (0.02ms, 61.5MB) 테스트 5 〉 통과 (0.02ms, 59.7MB) 테스트 6 〉 통과 (0.04ms, 61.3MB) 테스트 7 〉 통과 (0.02ms, 62.3MB) 테스트 8 〉 통과 (0.02ms, 60.9MB) 테스트 9 〉 통과 (0.01ms, 61MB) 테스트 10 〉 통과 (0.04ms, 62.5MB) 테스트 11 〉 통과 (0.03ms, 61.1MB) 테스트 12 〉 통과 (0.02ms, 61.7MB) 테스트 13 〉 통과 (0.03ms, 58.3MB) 테스트 14 〉 통과 (0.02ms, 59.7MB) 테스트 15 〉 통과 (0.03ms, 62.2MB) 테스트 16 〉 통과 (0.04ms, 63.3MB) 테스트 17 〉 통과 (0.03ms, 57.9MB) 테스트 18 〉 통과 (0.02ms, 60.5MB) 테스트 19 〉 통과 (0.02ms, 60.7MB) 테스트 20 〉 통과 (0.02ms, 61.8MB) 테스트 21 〉 통과 (0.03ms, 59.1MB) 테스트 22 〉 통과 (0.03ms, 61.9MB) 테스트 23 〉 통과 (0.02ms, 60.5MB) 테스트 24 〉 통과 (0.02ms, 60.7MB) 테스트 25 〉 통과 (0.02ms, 61.7MB) 처음에 작성(mutableList 및 removeFirst를 이용) 했었던 코드의 실행시간 입니다.
테스트 1 〉 통과 (25.09ms, 63.6MB) 테스트 2 〉 통과 (19.80ms, 63.6MB) 테스트 3 〉 통과 (19.30ms, 62.9MB) 테스트 4 〉 통과 (23.22ms, 63.2MB) 테스트 5 〉 통과 (23.67ms, 63.2MB) 테스트 6 〉 통과 (27.08ms, 63.4MB) 테스트 7 〉 통과 (22.11ms, 64MB) 테스트 8 〉 통과 (22.61ms, 63.4MB) 테스트 9 〉 통과 (36.98ms, 63.3MB) 테스트 10 〉 통과 (29.90ms, 62.9MB) 테스트 11 〉 통과 (27.57ms, 62.7MB) 테스트 12 〉 통과 (27.81ms, 61.1MB) 테스트 13 〉 통과 (35.42ms, 63.3MB) 테스트 14 〉 통과 (21.78ms, 61.9MB) 테스트 15 〉 통과 (37.99ms, 62.7MB) 테스트 16 〉 통과 (27.40ms, 62.3MB) 테스트 17 〉 통과 (19.75ms, 63MB) 테스트 18 〉 통과 (27.81ms, 63.2MB) 테스트 19 〉 통과 (25.23ms, 62.9MB) 테스트 20 〉 통과 (30.22ms, 62.9MB) 테스트 21 〉 통과 (22.61ms, 63.5MB) 테스트 22 〉 통과 (29.19ms, 63.1MB) 테스트 23 〉 통과 (30.99ms, 63.3MB) 테스트 24 〉 통과 (28.25ms, 63.1MB) 테스트 25 〉 통과 (30.17ms, 62.4MB) 불필요한 작업때문에 시간이 급격하게 늘어난 것을 확인 할 수 있습니다.
'프로그래머스' 카테고리의 다른 글
[프로그래머스][Kotlin]대충 만든 자판 (0) 2023.02.26 [프로그래머스][Kotlin] 롤케이크 자르기 (0) 2023.02.20 [프로그래머스][Kotlin] 억억단을 외우자 (2) 2023.02.16 [프로그래머스][2019 카카오 개발자 겨울 인턴십][Kotlion] 징검다리 건너기 (0) 2023.02.14 [프로그래머스][2022 KAKAO TECH INTERNSHIP][Kotlin] 행렬과 연산 (0) 2023.02.14