본문 바로가기

알고리즘/SWEA

4050. 재관이의 대량 할인

https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AWIseXoKEUcDFAWN&categoryId=AWIseXoKEUcDFAWN&categoryType=CODE

 

SW Expert Academy

SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!

swexpertacademy.com

단순하게 전부 입력받고 내림차순 정렬을 해준 후, 3의 배수일때 더해주지 않으면 된다.

 

<JAVA>

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import java.util.StringTokenizer;

public class Solution {
	public static void main(String[] args) throws Exception {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		StringTokenizer st;
		int T = Integer.parseInt(br.readLine());
		for (int t = 1; t <= T; ++t) {
			List<Integer> list = new ArrayList<>();
			int sum = 0;
			int N = Integer.parseInt(br.readLine());
			st = new StringTokenizer(br.readLine(), " ");
			for (int i = 0; i < N; ++i) {
				list.add(Integer.parseInt(st.nextToken(" ")));
			}
			Collections.sort(list, Comparator.reverseOrder());
			for (int i = 0; i < list.size(); ++i) {
				if ((i + 1) % 3 != 0) {
					sum += list.get(i);
				}
			}
			System.out.println("#" + t + " " + sum);
		}
	}
}

<C++>

#include<iostream>
#include<vector>
#include<algorithm>

using namespace std;
int main() {
	ios_base::sync_with_stdio(false);
	cin.tie(NULL); cout.tie(NULL);
	int T, N, sum, temp = 0;
	cin >> T;
	vector<int> v;
	for (int t = 1; t <= T; ++t) {
		v.clear();
		sum = 0;
		cin >> N;
		for (int i = 0; i < N; ++i) {
			cin >> temp;
			v.push_back(temp);
		}
		sort(v.begin(), v.end(), greater<int>());
		for (int i = 0; i < N; ++i) {
			if ((i + 1) % 3 != 0) {
				sum += v[i];
			}
		}
		cout << "#" << t << " " << sum << "\n";
	}
}