๋ฌธ์
์ ์ฌ ์ฐธ์ฌ ํ์ ๋ฆฌ์คํธ ๋ง๋ค๊ธฐ 1
10 I 1011 ํ๋ผ์ฐ I 999 ๋ฐฑ๋์ฐ I 999 ์ค๋์ฐ D 999 ๋ฐฑ๋์ฐ I 800 ๋ฐฑ๋์ฐ D 500 ํ๋ผ์ฐ I 900 ๋จ์ฐ I 950 ๊ธ๊ฐ์ฐ I 1205 ์ง๋ฆฌ์ฐ I 700 ๋ถํ์ฐ 1 2 4 5 6
codeup.kr
์ฝ๋
#include <iostream>
#include <vector>
#include <map>
#include <algorithm>
using namespace std;
int N;
struct Data{
int number;
string name;
};
bool cmp(const Data &v1, const Data &v2){
return v1.number<v2.number;
}
map<int,int>check;
int main(){
cin>>N;
vector<Data>v;
for(int i=0; i<N; i++){
char cmd; int number; string name;
cin>>cmd>>number>>name;
if(cmd=='I'){
if(check[number]==0){
check[number]=1;
v.push_back({number,name});
}
}
else if(cmd=='D'){
if(check[number]==1){
check[number]=0;
for(int i=0; i<v.size(); i++){
if(v[i].number==number) v.erase(v.begin()+i);
}
}
}
}
sort(v.begin(),v.end(),cmp);
for(int i=0; i<5; i++){
int find; cin>>find;
cout<<v[find-1].number<<' '<<v[find-1].name<<'\n';
}
}
ํ์ด
๋จธ๋ฆฌ ์ํ๋ ค๊ณ ์ ํํ ๋ฌธ์ ์๋๋ฐ, ๋๋ฆ ๊น๋ค๋ก์ ์ต๋๋ค.
map์ ์ฌ์ฉํ์ฌ ํ์ฌInsert ๋ ์ํ์ธ์ง์ ์ฌ๋ถ๋ฅผ ํ์ธํด์ฃผ์๊ณ , Delete์
๋ ฅ ์ erase๋ฌธ์ ์ฌ์ฉํ์ฌ ํด๋น ๋ฐ์ดํฐ๋ฅผ ์ญ์ ํ๋ ๋ฐฉ๋ฒ์ผ๋ก ํ์ดํ์ต๋๋ค.
์ฑ์

'Algorithm ๐ง๐ปโ๐ป > CodeUp' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
1510 : ํ์ ๋ง๋ฐฉ์ง (0) | 2022.01.16 |
---|---|
4503 : ๋ฐ์ด๋ฌ์ค (0) | 2022.01.14 |
3705 : ์ฐ์๋ ๊ตฌ๊ฐ์ ์ต๋ํฉ (0) | 2022.01.14 |
2641 : ์๋ค๋ฆฌ์ ๊ณ๋จ ์ค๋ฅด๊ธฐ (Small) (0) | 2022.01.14 |
2633 : Lower Bound (0) | 2022.01.14 |
4060: ์ ๊ดํ ์ ๊ตฌ์กฐ์ (0) | 2022.01.14 |
๋๊ธ