๋ฌธ์
์ ์ฌ ์ฐธ์ฌ ํ์ ๋ฆฌ์คํธ ๋ง๋ค๊ธฐ 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 |
๋๊ธ