728x90
๋ฌธ์
n๊ฐ์ ๋ช ๋ น์ด ์ฃผ์ด์ก์ ๋, ๊ฐ ๋ช ๋ น์ ์ํํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํด๋ณด์ธ์. ๋ช ๋ น์ ์ข ๋ฅ๋ ํฌ๊ฒ 4๊ฐ์ง ์ ๋๋ค.
- add k v : (k, v) ์์ treemap์ ์ถ๊ฐํฉ๋๋ค. key๊ฐ k, value๊ฐ v๋ผ๋ ๋ป์ ๋๋ค. ์ด๋ ๋ง์ฝ ๋์ผํ k๊ฐ ์ด๋ฏธ ์กด์ฌํ๋ค๋ฉด, v๋ก ๋ฎ์ด์๋๋ค.
- remove k : key๊ฐ k์ธ ์์ ์ฐพ์ treemap์์ ์ ๊ฑฐํฉ๋๋ค. ์๋ชป๋ ์ ๋ ฅ์ ์ฃผ์ด์ง์ง ์์ต๋๋ค.
- find k : key๊ฐ k์ธ ์์ด treemap์ ์๋์ง๋ฅผ ํ๋จํฉ๋๋ค. ์๋ค๋ฉด ํด๋นํ๋ value๋ฅผ ์ถ๋ ฅํ๊ณ , ์๋ค๋ฉด None์ ์ถ๋ ฅํฉ๋๋ค.
- print_list : treemap์ ์๋ ์๋ค์ key ๊ธฐ์ค์ผ๋ก ์ค๋ฆ์ฐจ์ ์ ๋ ฌํ์ฌ ๊ฐ value ๊ฐ๋ค๋ง ๊ณต๋ฐฑ์ ์ฌ์ด์ ๋๊ณ ์์๋๋ก ์ถ๋ ฅํฉ๋๋ค. ๋ง์ฝ treemap์ด ๋น์ด์๋ค๋ฉด None์ ์ถ๋ ฅํฉ๋๋ค.
์ ๋ ฅ ํ์
์ฒซ ๋ฒ์งธ ์ค์๋ n์ด ์ฃผ์ด์ง๋๋ค.
๋ ๋ฒ์งธ ์ค ๋ถํฐ๋ n๊ฐ์ ์ค์ ๊ฑธ์ณ ๊ฐ ๋ช ๋ น์ด ํ ์ค์ ํ๋์ฉ ์ฃผ์ด์ง๋๋ค. ๊ฐ ๋ช ๋ น์ ์ฃผ์ด์ง๋ key์ value๋ ์ ๋ถ ์ซ์์ ๋๋ค. ๋ช ๋ น๋ค์ ์์๋๋ก ์ํ๋์ด์ผ ํฉ๋๋ค. ๋จ, print_list ๋ช ๋ น์ ์ต๋ 10๋ฒ๋ง ์ฃผ์ด์ง๋ค๊ณ ๊ฐ์ ํด๋ ์ข์ต๋๋ค.
- 1 ≤ n ≤ 100,000
- 1 ≤ ์ฃผ์ด์ง๋ ์ซ์ ≤
์ถ๋ ฅ ํ์
๊ฒฐ๊ณผ๋ฅผ ํ ์ค์ ํ๋์ฉ ์ถ๋ ฅํฉ๋๋ค.
๋์ ํ์ด
#include <iostream>
#include <string>
#include <map>
using namespace std;
int n;
map<int, int> m;
int main() {
cin >> n;
for(int i = 0; i < n; i++) {
string command;
cin >> command;
if(command == "add") {
int k, v;
cin >> k >> v;
m[k] = v;
}
else if(command == "remove") {
int k;
cin >> k;
m.erase(k);
}
else if(command == "find") {
int k;
cin >> k;
if(m.find(k) == m.end())
cout << "None" << endl;
else
cout << m[k] << endl;
}
else {
if(m.empty()) {
cout << "None" << endl;
continue;
}
map<int, int>::iterator it;
for(it = m.begin(); it != m.end(); it++)
cout << it -> second << " ";
cout << endl;
}
}
return 0;
}
๋ฌธ์ ์ถ์ฒ ์ฝ๋ํธ๋ฆฌ
728x90
'๐ ์๊ณ ๋ฆฌ์ฆ > Code Tree' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[์ฝ๋ํธ๋ฆฌ] Hash Set ์ฐ์ต๋ฌธ์ (0) | 2023.02.09 |
---|---|
[์ฝ๋ํธ๋ฆฌ] Hash Set (0) | 2023.02.09 |
[์ฝ๋ํธ๋ฆฌ] Tree Map (0) | 2023.02.09 |
[์ฝ๋ํธ๋ฆฌ] HashMap ์ฐ์ต๋ฌธ์ (0) | 2023.02.09 |
[์ฝ๋ํธ๋ฆฌ] Hash Map (0) | 2023.02.07 |