https://www.acmicpc.net/problem/12034
12034번: 김인천씨의 식료품가게 (Large)
입력의 첫 번째 라인(줄)은 테스트 사례의 케이스의 수 T를 나타냅니다. 이후의 라인은 T개의 테스트 케이스가 이어집니다. 각 테스트 케이스는 두 줄로 구성됩니다. 첫 번째 줄에는 INU 식료품가
www.acmicpc.net
문제 해설
2N개의 가격표를 순회하며 정확히 75% 할인된 가격만 뽑아내 출력하는 문제다.
이 경우 map이나 set은 중복을 없애기 때문에 이용할 수 없다.
multimap이나 multiset은 가능하다.
본인은 인덱스를 통한 접근이 유용할 것 같아서 vector로 해결했다.
#include <iostream>
#define fio cin.tie(0)->sync_with_stdio(0)
using namespace std;
#include <set>
#include <vector>
int main(){
fio;
int T; cin >> T;
for(int t = 1; t<= T; t++){
int N; cin >> N;
vector<int> cost;
for(int i=0; i <2*N; i++){
int tmp; cin >> tmp;
cost.push_back(tmp);
}
vector<int> ans;
for(int i=0; i<cost.size(); i++){
int now = cost[i];
if(now == 0) continue;
int origin = now/3;
origin *= 4;
for(int j=i+1; j<cost.size(); j++){
if(cost[j] == origin){
ans.push_back(now);
cost[j] = 0;
break;
}
}
}
//
cout <<"Case #"<<t<<": ";
for(auto i:ans){
cout << i <<' ';
}
cout <<'\n';
}
return 0;
}
'알고리즘 > 백준' 카테고리의 다른 글
백준 [BOJ] 16936 나3곱2 (0) | 2021.12.29 |
---|---|
백준 12015 가장 긴 증가하는 부분 수열 2 +a (0) | 2021.12.28 |
백준 11645 I’ve Been Everywhere, Man (0) | 2021.12.27 |
백준 11507 카드셋트 (0) | 2021.12.27 |
백준 11346 Cornell Party - Retry (0) | 2021.12.27 |