일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 매트랩
- 기본
- EOI
- 선형대수
- 알고리즘
- Deep learning
- machine learning
- 방통대
- LV1
- 캐나다 영주권
- omscs
- 코딩테스트
- 머신러닝
- MATLAB
- 컴퓨터과학과
- 마니토바
- 개발자
- 조지아텍
- zeros
- C++
- 프로그래머스
- 방송통신대학교
- leetcode
- 딥러닝
- 주정부이민
- cpp
- mpnp
- LAA
- Plotting
- 온라인석사
Archives
- Today
- Total
Krononberg
811. Subdomain Visit Count.cpp 본문
🔑 cpdomain의 각 요소마다, parsing에 의해 생성되는 string을 key로, 선두에 나타나는 숫자를 value로 가지는 map을 생성하면 된다. 단, key가 이미 존재하는 경우, 기존 value에 신규 value를 누적 덧셈한다.
class Solution {
public:
vector<string> subdomainVisits(vector<string>& cpdomains) {
vector<string>res;
map<string,int>m;
for(int i =0; i<cpdomains.size(); i++){
string numStr = "";
for(int j =0; j<cpdomains[i].size(); j++){
if(isdigit(cpdomains[i][j])){
numStr+= cpdomains[i][j];
}
else break;
}
int numStrToInt = stoi(numStr);
string domainTmp = "";
for(int k = cpdomains[i].size(); k--;){
if(cpdomains[i][k] == '.' || cpdomains[i][k] == ' ' ){
if(m.count(domainTmp)) m.find(domainTmp)->second += numStrToInt;
else{
m.insert(make_pair(domainTmp, numStrToInt));
}
}
domainTmp = cpdomains[i][k] + domainTmp;
if(isdigit(cpdomains[i][k])) break;
}
}
for (auto &it : m){
string tmp = "";
tmp = to_string(it.second) + " " + it.first;
res.push_back(tmp);
}
return res;
}
};
'개발 로그 > 알고리즘' 카테고리의 다른 글
1207. Unique Number of Occurrences.cpp (0) | 2021.10.25 |
---|---|
1380. Lucky Numbers in a Matrix.cpp (0) | 2021.10.21 |
1448. Count Good Nodes in Binary Tree.cpp (0) | 2021.10.19 |
1742. Maximum Number of Balls in a Box.cpp (0) | 2021.10.18 |
2042. Check if Numbers Are Ascending in a Sentence.cpp (0) | 2021.10.18 |