https://school.programmers.co.kr/learn/courses/30/lessons/42578?language=cpp
*ํ์ด
์์์กฐํฉ๊ฐ์๋ฅผ ์ฐพ๋ ๋ฌธ์ ๋ก, ์์์ ์ข ๋ฅ๋ฅผ key๋ก ์์์ ์ข ๋ฅ๊ฐ์๋ฅผ value๋ก hash map์ผ๋ก ํํํด์
์์์ข ๋ฅ๊ฐ์์ ์กฐํฉ์ ๊ณ์ฐํ๋ฉด๋๋ค(๊ณฑ์ ์ฐ์ฐ)
*์์๋ ๊ฒ
[hash map ๋ฐ๋ณต๋ฌธ ํ์๋ฐฉ๋ฒ]
hash map์ ๋ฐ๋ณต๋ฌธ์ ์ ์ฉํ ๋ iterator๋ฅผ ์ด์ฉํ๊ฑฐ๋ foreach ๋ฅผ ์ด์ฉํ๋ ๋ฐฉ๋ฒ์ด ์๋ค.
1) iterator์ ์ด์ฉํ hash map ๋ฐ๋ณต๋ฌธ
unordered_map<string, int>::iterator it;
for(it = map.begin(); it != map.end(); it++){
cout << it->first << " " << it->second << "\n";
}
iterator ๋ฅผ ๋ง๋ค๊ณ ->๋ก ์ ๊ทผํ๋ค.
2) foreach๋ฅผ ์ด์ฉํ hash_map ๋ฐ๋ณต๋ฌธ
for (auto& i : map) {
cout << i.first << " " << i.second << endl;
}
auto& ๋ฌธ์ผ๋ก ์๋์ผ๋ก ๋ฐ์ดํฐํ์ ์ง์ ํ๊ฑฐ๋ pair(string, int> i ๋ก ํ์ ์ง์ ํด์ฃผ๊ณ
. ์ผ๋ก ์ ๊ทผํด์ ์ฌ์ฉํ๋ค.
*์ฝ๋
#include <string>
#include <vector>
#include <unordered_map>
using namespace std;
int solution(vector<vector<string>> clothes) {
int answer = 1;
unordered_map<string, int> map;
//1. ์ท ์ข
๋ฅ๋ฅผ key๋ก ๋๊ณ ์ท ์ข
๋ฅ๋ฅผ ์ผ๋ค.
for(auto& i: clothes){
map[i[1]]++;
}
//2. ์ท ์ข
๋ฅ ๊ฐ์๋งํผ ๊ณฑํด์ ์กฐํฉ ๊ฐ์๋ฅผ ์ฐพ๋๋ค.
unordered_map<string, int>::iterator it;
for(it = map.begin(); it != map.end(); it++){
//์ท ์ข
๋ฅ ๊ฐ์์ ์ฐฉ์ฉ์ํ๋ ๊ฒฝ์ฐ๋ฅผ ์ถ๊ฐํด์ +1ํ ๊ฒ.
answer *= (it->second +1);
}
//3. ์ ๋ถ ์ฐฉ์ฉ ์ํ๋ ๊ฒฝ์ฐ 1๊ฐ์ง๋ฅผ ์ ์ธํ๋ค.
answer--;
return answer;
}
iterator ๋ก ๋ฐ๋ณต๋ฌธ์ ๋๋ ธ์๋๋ฐ ๊ฒ์ํด๋ณด๊ณ ์๋์ฒ๋ผ ๊ณ ์ณค๋ค.
#include <string>
#include <vector>
#include <unordered_map>
using namespace std;
int solution(vector<vector<string>> clothes) {
int answer = 1;
unordered_map<string, int> map;
//1. ์ท ์ข
๋ฅ๋ฅผ key๋ก ๋๊ณ ์ท ์ข
๋ฅ๋ฅผ ์ผ๋ค.
for(auto& i: clothes){
map[i[1]]++;
}
//2. ์ท ์ข
๋ฅ ๊ฐ์๋งํผ ๊ณฑํด์ ์กฐํฉ ๊ฐ์๋ฅผ ์ฐพ๋๋ค.
for(pair<string, int> i: map){
//์ท ์ข
๋ฅ ๊ฐ์์ ์ฐฉ์ฉ์ํ๋ ๊ฒฝ์ฐ๋ฅผ ์ถ๊ฐํด์ +1ํ ๊ฒ.
answer *= (i.second + 1);
}
//3. ์ ๋ถ ์ฐฉ์ฉ ์ํ๋ ๊ฒฝ์ฐ 1๊ฐ์ง๋ฅผ ์ ์ธํ๋ค.
answer--;
return answer;
}
pair<string, int> i ๋ฅผ auto& i ๋ก ๋ณ๊ฒฝ๊ฐ๋ฅํจ !
'๐ Coding Test Study > Algorithm Problem' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[C++][Programmers][์คํ/ํ] ๊ธฐ๋ฅ๊ฐ๋ฐ (0) | 2023.05.18 |
---|---|
[C++][Programmers][์คํ/ํ] ๊ฐ์ ์ซ์๋ ์ซ์ด (0) | 2023.05.18 |
[C++][Programmers][ํด์] ํฌ์ผ๋ชฌ (0) | 2023.05.15 |
[C++][Programmers][DFS/BFS] ์ฌํ๊ฒฝ๋ก (0) | 2023.05.09 |
[C++][Programmers][DFS/BFS] ๋จ์ด ๋ณํ (0) | 2023.05.07 |