[프로그래머스] 다리를 지나는 트럭 - 스택/큐

2021. 7. 18. 14:23·BE/algorithm

문제링크

https://programmers.co.kr/learn/courses/30/lessons/42583

 

코딩테스트 연습 - 다리를 지나는 트럭

트럭 여러 대가 강을 가로지르는 일차선 다리를 정해진 순으로 건너려 합니다. 모든 트럭이 다리를 건너려면 최소 몇 초가 걸리는지 알아내야 합니다. 다리에는 트럭이 최대 bridge_length대 올라갈

programmers.co.kr

문제풀이

import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
import java.util.Queue;

class Solution {
    public int solution(int bridge_length, int weight, int[] truck_weights) {
        List<Integer> done = new ArrayList<>();
        Queue<Integer> trucks = new LinkedList<Integer>();
        Queue<Integer> bridge = new LinkedList<Integer>();
        for (int truck : truck_weights) {
            trucks.add(truck);
        }

        // initialize queue (adding dummy data)
        for (int i = 0; i < bridge_length; i++) {
            bridge.add(0);
        }

        int answer = 0;
        int sum = 0;
        while (done.size() < truck_weights.length) {
            // 조건 만족
            if (trucks.peek() != null) {
                if (sum + trucks.peek() <= weight) {
                    int curr = trucks.poll();
                    bridge.add(curr);
                    sum += curr;
                }
            }
            if (bridge.size() < bridge_length) {
                bridge.add(0);
            }
            // iteration이 끝나면 빼주기
            int truck = bridge.poll();
            sum -= truck;
            if (truck != 0) {
                done.add(truck);
            }
            ++answer;
        }
        return answer;
    }
}

 

반응형
저작자표시 비영리 변경금지 (새창열림)

'BE > algorithm' 카테고리의 다른 글

[LeetCode] 242. Valid Anagram  (0) 2022.12.14
[LeetCode] 217. Contains Duplicate  (2) 2022.12.14
[프로그래머스] K번째수 - 정렬  (0) 2021.07.18
[프로그래머스] 완주하지 못한 선수 - 해시  (0) 2021.07.18
[프로그래머스] 모의고사 - 완전탐색  (0) 2021.07.18
'BE/algorithm' 카테고리의 다른 글
  • [LeetCode] 242. Valid Anagram
  • [LeetCode] 217. Contains Duplicate
  • [프로그래머스] K번째수 - 정렬
  • [프로그래머스] 완주하지 못한 선수 - 해시
bandal-gom
bandal-gom
Devops & Backend Developer | tech blog
  • bandal-gom
    yayz's devlog
    bandal-gom
  • 전체
    오늘
    어제
    • 분류 전체보기 (68)
      • DevOps (22)
        • devops (4)
        • cicd (2)
        • docker (2)
        • monitoring (2)
        • nginx (4)
        • cache (1)
        • aws (1)
        • etc (6)
      • BE (21)
        • BE (3)
        • design pattern (1)
        • data structure (0)
        • spring (1)
        • algorithm (12)
      • devlog (24)
        • TIL (17)
        • programming language (2)
        • conference (2)
        • etc (3)
      • IT Review (1)
  • 블로그 메뉴

    • about.
    • 개발👩‍💻
    • etc.
  • 링크

    • Github
  • 공지사항

  • 인기 글

  • 태그

    티스토리챌린지
    NGINX
    LeetCode
    모각코
    오블완
    leetcode 347
    homelab
    문제풀이
    java
    알고리즘문제풀이
    jenkins
    hash
    키보드케이블
    array
    코딩테스트준비
    Kotlin
    time complexity
    algorithm
    노트북하기좋은카페
    키캡
    프로그래머스
    Python
    Programmers
    젠킨스
    99클럽
    개발자취업
    항해99
    릿코드
    til
    알고리즘
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
bandal-gom
[프로그래머스] 다리를 지나는 트럭 - 스택/큐
상단으로

티스토리툴바