기몽수
코딩 기록일지
기몽수
전체 방문자
오늘
어제
  • 분류 전체보기 (443)
    • 알고리즘 - SWEA (210)
      • D1 (19)
      • D2 (25)
      • D3 (143)
      • D4 (21)
      • D5 (2)
    • 알고리즘 - Programmers (74)
      • Unrated (34)
      • Lv 0 (4)
      • Lv 1 (3)
      • Lv 2 (32)
      • Lv 3 (1)
    • 알고리즘 - Baekjoon (158)
      • Bronze (1)
      • Silver (65)
      • Gold (90)
      • Platinum (2)
    • 취업 (0)
    • SSAFY (1)
hELLO · Designed By 김용수.
기몽수

코딩 기록일지

알고리즘 - SWEA/D3

[SW expert Academy] SWEA 9280번 진용이네 주차타워 자바(Java)

2023. 11. 7. 13:10

[D3] 진용이네 주차타워 - 9280

문제 링크

성능 요약

메모리: 62,012 KB, 시간: 251 ms, 코드길이: 1,888 Bytes

제출 일자

2023-11-07 10:21

출처: SW Expert Academy, https://swexpertacademy.com/main/code/problem/problemList.do

import java.util.*;
class Solution {
	public static void main(String args[]) throws Exception {
		Scanner sc = new Scanner(System.in);
		int T = sc.nextInt();
		for(int tc = 1; tc <= T; tc++) {
			int n = sc.nextInt();
            int m = sc.nextInt();
            int[] rate = new int[n];
            int[] weight = new int[m];
            int[] parking = new int[m];
            boolean[] canP = new boolean[n];
            Queue<Integer> wating = new LinkedList<>();
            int sum = 0;
            int size = 0;
            for(int i = 0; i < n; i ++){ rate[i] = sc.nextInt(); }
            for(int i = 0; i < m; i++) { weight[i] = sc.nextInt(); } 
            for(int i = 0; i < 2 *m; i++){
                int car = sc.nextInt();
                if(car > 0){
                    if(size < n){
                        for(int j = 0; j < n; j++){
                            if(!canP[j]){
                                parking[car-1] = j;
                                canP[j] = true;
                                size++;
                                break;
                            }
                        }
                    } 
                    else{ wating.offer(car); }
                }
                else{
                    car = Math.abs(car)-1;
                    sum += rate[parking[car]] * weight[car];
                    canP[parking[car]] = false;
                    size--;
                    if(!wating.isEmpty()){
                        for(int j = 0; j < n; j++){
                            if(!canP[j]){
                                canP[j] = true;
                                parking[wating.poll()-1] = j;
                                size++;
                            }
                        }
                    }
                }
            }
            System.out.println("#" + tc + " " + sum);
        }
	}
}

'알고리즘 - SWEA > D3' 카테고리의 다른 글

[SW expert Academy] SWEA 1244번 최대 상금 자바(Java)  (0) 2023.11.07
[SW expert Academy] SWEA 9658번 유효숫자 표기 자바(Java)  (0) 2023.11.07
[SW expert Academy] SWEA 7532번 세영이의 SEM력 연도 자바(Java)  (0) 2023.11.06
[SW expert Academy] SWEA 5515번 2016년 요일 맞추기 자바(Java)  (0) 2023.11.06
[SW expert Academy] SWEA 10200번 구독자 전쟁 자바(Java)  (0) 2023.11.06
    '알고리즘 - SWEA/D3' 카테고리의 다른 글
    • [SW expert Academy] SWEA 1244번 최대 상금 자바(Java)
    • [SW expert Academy] SWEA 9658번 유효숫자 표기 자바(Java)
    • [SW expert Academy] SWEA 7532번 세영이의 SEM력 연도 자바(Java)
    • [SW expert Academy] SWEA 5515번 2016년 요일 맞추기 자바(Java)
    기몽수
    기몽수

    티스토리툴바