(Java) 프로그래머스 다리를 지나는 트럭

2022. 1. 23. 05:42·코딩 테스트

문제를 보자마자 큐를 이용해야 한다는 느낌이 왔다.

다만 실제 코드 작성은 쉽게 되지 않았다.

특히 까다로웠던 부분은 다리 위 트럭 무게 총합 + 다음 올라와야 하는 트럭 무게가 다리 하중보다 큰 경우였는데

이때 가장 먼저 올라갔던 트럭이 내려와야 하므로 대기하는 시간을 추가하는 부분이었다.

이 부분을 고려하지 못해서 계속 실패하다 검색을 통해 힌트를 얻어 해결했다.


최종 코드

import java.util.LinkedList;
import java.util.Queue;
class Solution {
    public int solution(int bridge_length, int weight, int[] truck_weights) {
        int answer = 0;
        Queue<Integer> queue = new LinkedList<>();

        // 다리 위 트럭 무게 총합
        int temp = 0;
        int i = 0;

        // 모든 트럭이 다리 위에 올라가도록 계속 반복
        while (true) {
            // 마지막 트럭이 다리에 올라가면
            if(i == truck_weights.length) {
                break;
            }
            // 트럭이 다리 끝에 도달하면 하면 다리 위 트럭 무게에서 빼기
            if(queue.size() == bridge_length) {
                temp -= queue.poll();
            }
            // 다리 위 트럭 무게 총합 + 다음 올라와야 하는 트럭 무게가 다리 하중보다 크면
            else if(temp + truck_weights[i] > weight) {
                // 먼저 올라간 트럭이 내려와야 하므로 0을 추가하고 1초 대기
                queue.add(0);
                answer++;
            }
            else {
                queue.add(truck_weights[i]);
                temp += truck_weights[i];
                i++;
                answer++;
            }
        }

        // 마지막 트럭이 다리위에 올라간 상태에서 다리 길이를 더하기
        answer = answer + bridge_length;
        return answer;
    }
}

'코딩 테스트' 카테고리의 다른 글

(Java) 프로그래머스 괄호 변환  (0) 2022.03.06
(Java) 프로그래머스 오픈채팅방  (0) 2022.03.03
(Java) 프로그래머스 소수찾기_L2  (0) 2022.01.23
(Java) 프로그래머스 위장  (0) 2022.01.18
(Java) 프로그래머스 카펫  (0) 2022.01.16
'코딩 테스트' 카테고리의 다른 글
  • (Java) 프로그래머스 괄호 변환
  • (Java) 프로그래머스 오픈채팅방
  • (Java) 프로그래머스 소수찾기_L2
  • (Java) 프로그래머스 위장
로승리
로승리
  • 로승리
    Roy's Blog
    로승리
  • 전체
    오늘
    어제
    • 분류 전체보기
      • Issuefy
      • Language
      • Spring
      • Database
      • Network
      • Kubernetes
      • AWS
      • 코드스쿼드
      • 코딩 테스트
      • 생각정리
      • 국비지원
      • 회고
      • 컨퍼런스, 세미나
  • 블로그 메뉴

    • 홈
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
로승리
(Java) 프로그래머스 다리를 지나는 트럭
상단으로

티스토리툴바