코드와이
[SW Expert Academy] 9280. 진용이네 주차 타워 본문
문제링크
swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AW9j74FacD0DFAUY&
package D3;
import java.util.ArrayList;
import java.util.Scanner;
public class 진용이네_주차타워 {
public static void main(String[] args){
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 ans = 0;
int[] r_i = new int[n];
int[] w_i = new int[m];
for (int i = 0 ; i < n ; i++) {
r_i[i] = sc.nextInt();
}
for (int i = 0 ; i < m ; i++) {
w_i[i] = sc.nextInt();
}
int[] park = new int[n];
ArrayList<Integer> wait = new ArrayList<Integer>();
for(int i = 0 ; i < 2*m; i++) {
int num = sc.nextInt();
if (num > 0) {
int j = 0;
for (j = 0 ; j < n; j++) {
if (park[j] == 0) {
park[j] = num;
ans += w_i[num-1] * r_i[j];
break;
}
}
if (j == n) {
wait.add(num);
}
} else {
for (int j = 0 ; j < n; j++) {
if (park[j] == Math.abs(num)) {
if (wait.size() == 0) park[j] = 0;
else {
park[j] = wait.get(0);
ans += w_i[wait.get(0)-1] * r_i[j];
wait.remove(0);
}
break;
}
}
}
}
System.out.println("#" + tc + " " + ans);
}
}
}
'SW_Expert' 카테고리의 다른 글
[SW Expert Academy] 6853. 직사각형과 점 (0) | 2021.02.04 |
---|---|
[SW Expert Academy] 5432. 쇠막대기 자르기 (0) | 2021.02.03 |
[SW Expert Academy] 6808. 규영이와 인영이의 카드게임 (0) | 2021.02.03 |
[SW Expert Academy] 2817. 부분 수열의 합 (0) | 2021.02.03 |
[SW Expert Academy] 1208. flatten (0) | 2021.02.02 |