[SWEA] 재관이의 대량 할인

문제 보러가기

제한사항

이외의 제한사항은 없다.

첫번째 생각

먼저 물건을 가격순으로 정렬한 후

  1. 3의배수로 묶이지 않는 물건을 계산한다.
  2. 남은 물건 중에 세번째 물건은 그 묶음에서 무료로 결제가 되므로 패스한다.

의 과정을 거쳐서 계산한다.

Code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
import java.util.Arrays;
import java.util.Scanner;

public class Solution {
	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[] ar= new int[N];
			for(int i=0; i<N; i++) {
				ar[i] = sc.nextInt();
			}
			int price = 0;
			
			Arrays.sort(ar);
			int r = ar.length%3;
			
			for(int i=0; i<r; i++) {
				price += ar[i];
			}
			for(int i=0; i<N-r; i++) {
				if ( i%3 == 0 ) {
					continue;
				}
				price += ar[i+r];
			}
			
			System.out.println("#"+tc+" "+price);
			
		}
	}
}