๐ฟ ๋ฌธ์
๐ฟ ํด๊ฒฐ ๋ฐฉ๋ฒ
์ด ๋ฌธ์ ์ ํต์ฌ์ ํ์ผ ์ด๋ฆ์ ํ์์๊ณ ์ค๋ก์ง '.' ๋ค์ ํ์ฅ์๋ง ํ์
ํ๋ค๋ ๊ฒ.
๊ทธ๋์ ์ ๋ ฅ์ ๋ฐ์ ๋๋ถํฐ ์ ์ฒด ํ์ผ๋ช ์ ์ ์ฒด ์ ์ฅํ ํ์์์ด ํ์ฅ์๋ง ์ ์ฅํ๋ฉด ๋๋ค.
string
์ผ๋ก ํ์ผ๋ช
์ ์
๋ ฅ๋ฐ์ผ๋ฉด ํ์ฅ์๋ฅผ ํ๋ฒ์ ๋น ๋ฅด๊ฒ ๊ตฌํ ์ ์๋๋ฐ,
๋จผ์ find
ํจ์๋ฅผ ์ฌ์ฉํด์ '.'์ด ๋ช๋ฒ์งธ ์ธ๋ฑ์ค์ ์๋์ง ์ฐพ๋๋ค.
s.find(".")
๊ทธ ๋ค์ substr
ํจ์๋ฅผ ์ฌ์ฉํด์ '.' ์ดํ์ ๋ฌธ์์ด์ ํ๋ฒ์ ๊ตฌํ๋ค.
s.substr(s.find(".")+1)
์ด๋ ๊ฒ ํ์ฅ์๋ฅผ ๊ตฌํ์ผ๋ฉด map
์๋ค๊ฐ ์ฐจ๋ก๋๋ก ์ ์ฅํด์ฃผ๋ฉด ๋๋ค.
map์ key๊ฐ์ ๊ธฐ์ค์ผ๋ก ์๋ ์ ๋ ฌ
์ด ๋์ด์๋๋ฐ ๊ทธ๊ฑธ ๊น๋นกํ๊ณ ๋ฒกํฐ๋ฅผ ์ถ๊ฐํ๋ค์ ๋ ์ ๋ ฌ์ ํ๋๋ผ ์๊ฐ, ๋ฉ๋ชจ๋ฆฌ ๋ชจ๋ ์์ฒญ๋๊ฒ ๋์์๋คใ
ใ
..
์ํผ map์ ์ ์ฅ์ ํ์ผ๋ฉด iterator
์ ํ์ฉํด์ ๋งต์ ์ฒซ๋ฒ์งธ ์์๋ถํฐ ๋ง์ง๋ง ์์๊น์ง ์ฐจ๋ก๋๋ก ์ถ๋ ฅํด์ฃผ๋ฉด ๋!
map<string, int>::iterator iter;
for(iter = m.begin(); iter != m.end(); iter++) {
cout << iter -> first << " " << iter -> second << '\n';
}
๐ฟ ๋ด ์ฝ๋
// [20291] ํ์ผ ์ ๋ฆฌ
// ๋ฌธ์์ด, ์ ๋ ฌ, ๋งต
#include <iostream>
#include <map>
using namespace std;
map<string, int> m;
void categorizeExtension(string extension)
{
if(m.find(extension) != m.end()) {
m[extension]++;
}
else {
m.insert(make_pair(extension, 1));
}
}
void input()
{
int n;
string s;
cin >> n;
for(int i = 0; i < n; i++) {
cin >> s;
categorizeExtension(s.substr(s.find(".")+1));
}
}
void output()
{
map<string, int>::iterator iter;
for(iter = m.begin(); iter != m.end(); iter++) {
cout << iter -> first << " " << iter -> second << '\n';
}
}
int main(void)
{
input();
output();
}
'Baekjoon > ๋ฌธ์์ด' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[2757] ์์ (C++) (0) | 2022.06.29 |
---|---|
[17413] ๋จ์ด ๋ค์ง๊ธฐ2 (0) | 2022.06.21 |
[1157] ๋จ์ด ๊ณต๋ถ (0) | 2020.06.27 |
[11720] ์ซ์์ ํฉ(C / C++) (0) | 2020.06.27 |
[8958] OXํด์ฆ (0) | 2020.06.22 |