[BOJ] 백준 13335. 트럭

2024. 5. 18. 14:25· Java/BOJ

문제

https://www.acmicpc.net/problem/13335

 


풀이

큐를 이용한 구현으로 문제를 해결했습니다.

 

while문을 돌며 queue에 어떤 값을 집어 넣을지에 대한 조건을 정의합니다. 

 

 만약, 다음 차례의 트럭의 무게와 현재 다리에 있는 트럭 무게가 최대 허용 무게보다 작다면, queue에 다음 트럭을 넣고 아니라면 queue에 0을 넣어줍니다.

 

 그리고 매번 큐의 사이즈를 체크하여 큐의 크기 다리 길이와 같으면 queue에서 poll해줍니다.

 

 큐에 값을 add, poll 할 때에는 현재 다리의 트럭 무게를 업데이트해주었습니다.

 

아래는 소스코드입니다.


소스코드

import java.util.ArrayDeque;
import java.util.Queue;
import java.util.Scanner;

public class B13335_트럭 {

    static int N, Length, maxWeight;
    static int[] trucks;
    static Scanner sc = new Scanner(System.in);

    public static void main(String[] args) {
        input();
        getMinTime();
    }
    
    static void getMinTime(){
        Queue<Integer> queue = new ArrayDeque<>();
        int time = 1;
        int idx = 0;
        int totalWeight = 0;
        queue.add(trucks[idx]);
        totalWeight += trucks[idx];
        time++;
        int cnt = 0;
        while(true){
            if(queue.size()>=Length) {
                int out = queue.poll();
                totalWeight-=out;
                if(out != 0) cnt++;
                if(cnt == N) break;
            }
            if(idx+1<N&&trucks[idx+1]+totalWeight<=maxWeight){
                idx++;
                queue.add(trucks[idx]);
                totalWeight+=trucks[idx];
            }
            else queue.add(0);
            time++;
        }
        System.out.println(time);
    }
    
    static void input(){
        N = sc.nextInt();
        Length = sc.nextInt();
        maxWeight = sc.nextInt();
        trucks = new int[N];
        for(int i = 0 ;i<N;i++){
            trucks[i] = sc.nextInt();
        }
    }
}

'Java > BOJ' 카테고리의 다른 글

[BOJ] 백준 10164. 격자상의 경로  (0) 2024.05.28
[BOJ] 백준 14890. 경사로  (0) 2024.05.27
[BOJ] 백준 11728. 배열 합치기  (0) 2024.05.15
[BOJ] 백준 2828. 사과 담기 게임  (0) 2024.05.14
[BOJ] 백준 14244. 트리 만들기  (0) 2024.05.13
'Java/BOJ' 카테고리의 다른 글
  • [BOJ] 백준 10164. 격자상의 경로
  • [BOJ] 백준 14890. 경사로
  • [BOJ] 백준 11728. 배열 합치기
  • [BOJ] 백준 2828. 사과 담기 게임
동구름이
동구름이
동구름이
동구름
동구름이
전체
오늘
어제
  • 분류 전체보기 (177)
    • Java (63)
      • Java 를 파헤쳐보자 (13)
      • BOJ (45)
      • 프로그래머스 (3)
      • SWEA (1)
      • Java GUI (1)
    • JavaScript (17)
      • JS를 파헤쳐보자 (7)
      • 프로그래머스 (7)
      • JS 학습 정리 (1)
    • Backend (32)
      • Spring (3)
      • HTTP (7)
      • 프로젝트 (10)
      • MySQL (5)
      • Redis (3)
      • Elastic Search (1)
      • 인증, 인가 (3)
    • CS (57)
      • 운영체제 (35)
      • Network (22)
    • Git (2)
    • 개발 관련 이것저것 (2)
    • etc (1)
    • 독서 (0)
    • 사설 (0)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • OS
  • 김영한
  • 이석복
  • 백준
  • 반효경
  • 모든 개발자를 위한 HTTP 웹 기본 지식
  • 자바스크립트
  • 구현
  • 운영체제
  • 큐
  • 프로그래머스
  • BOJ
  • 자바
  • 네트워크
  • 스택
  • JCF
  • 한양대
  • 인프런
  • Java
  • 레디스

최근 글

hELLO · Designed By 정상우.v4.2.2
동구름이
[BOJ] 백준 13335. 트럭
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.