-
[프로그래머스][kotlin]다리를 지나는 트럭프로그래머스 2023. 1. 23. 15:32728x90
import java.util.* class Solution { fun solution(bridge_length: Int, weight: Int, truck_weights: IntArray): Int { var answer = 0 var waitTruck = ArrayDeque<Int>() truck_weights.forEach{ waitTruck.add(it) } var time = ArrayDeque<Int>() var pass = ArrayDeque<Int>() while(true){ if(waitTruck.isNotEmpty()){ if(pass.sum() + waitTruck.peekFirst() <= weight && pass.size < bridge_length){ pass.add(waitTruck.pollFirst()) time.add(answer) } } if(answer - time.first() >= bridge_length){ pass.removeFirst() time.removeFirst() } if(waitTruck.isNotEmpty()){ if(pass.sum() + waitTruck.peekFirst() <= weight && pass.size < bridge_length){ pass.add(waitTruck.pollFirst()) time.add(answer) } } answer++ if(waitTruck.isEmpty() && pass.isEmpty()) break } return answer } }
해당문제를 처음 봤을때 Deque를 사용하여 작성하면 수월할 거 같다는 생각이 들어 Deque를 사용하여 작성해보았습니다. 다른사람들의 풀이를 보니 Linked List 를 사용하여 해당 문제를 통과하신분들이 많았었습니다.
아직 자료구조에 대하여 공부중이라 추후 Linked List 를 이용하여 작성해 볼 수 있도록 하겠습니다.
'프로그래머스' 카테고리의 다른 글
[프로그래머스][2023 KAKAO BLIND RECRUITMENT][개인정보 수집 유효기간] (0) 2023.01.26 [프로그래머스][Kotlin][2022 KAKAO TECH INTERNSHIP] 두 큐 합 같게 만들기 (0) 2023.01.25 올바른 괄호 (0) 2023.01.18 2018 KAKAO BLIND RECRUITMENT [1차] 캐시 (0) 2023.01.16 크기가 작은 부분 문자열 (0) 2022.12.22