https://www.acmicpc.net/problem/13335
구현 문제다. 다리를 어떤 자료구조로 구현해낼지 고민해야 하는 문제다. cpp의 경우 큐 혹은 덱을 이용하여 풀면 되겠지만 스위프트의 경우에 큐나 덱이 없기에 배열을 사용해야 한다.
풀이
다리를 표현하는 bridge: Array(repeating:0, count:w) 배열을 생성하여 허용 중량까지만 담아내고 매 차례마다 원소들을 다음 인덱스로 밀어주는 함수 enter(truck:Int)를 구현하였다. 최대 중량과 현재 중량을 비교하는 부분에서 고민을 했던 문제다. 다리 끝자락에 위치한 트럭이 내리자마자 조건이 맞다면 바로 다음 트럭이 들어가야 하기 때문에 (현재 중량 - 마지막 트럭 무게 + 들어가야 할 트럭 무게) <= 최대 중량이라는 조건으로 매 차례 함수를 수행하였다. 트럭이 들어갈 수 없다면 0 무게를 bridge 배열에 추가하였다.
정답 코드
'Problem Solving > BOJ' 카테고리의 다른 글
[21608] 상어 초등학교 (0) | 2022.11.09 |
---|---|
[14891] 톱니바퀴 (0) | 2022.11.09 |
[1245] 농장 관리 (0) | 2022.11.04 |
[1148] 단어 만들기 (0) | 2022.11.03 |
[1195] 킥다운 (1) | 2022.11.02 |