Programming Language/C, C++
[프로그래머스][Lv. 2] 위장 C++ 풀이
myungsup1250
2022. 5. 17. 17:39
https://programmers.co.kr/learn/courses/30/lessons/42578
코딩테스트 연습 - 위장
programmers.co.kr
풀이는 추후에 차차 올리도록 하겠습니다...
Swift로도 푼 문제!
Swift 풀이 : https://youngdeveloper.tistory.com/145
<디버깅을 위한 기능이 포함된 첫 제출 코드>
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
|
#include <string>
#include <vector>
#include <iostream>
#include <map>
using namespace std;
int solution(vector<vector<string>> clothes) {
int answer = 1;
vector<string> clothTypes;
vector<vector<string>>::iterator iter;
vector<string>::iterator it;
map<string, vector<string>> clothesMap;
map<string, vector<string>>::iterator cmIter;
printf("clothes:\n");
for (iter = clothes.begin(); iter != clothes.end(); iter++) {
for (int i = 1; i < (*iter).size(); i++) {
if (i % 2 == 1) {
cout << "type: " << (*iter)[i] << ", names: " << (*iter)[i - 1] << endl;
if (clothesMap.find((*iter)[i]) != clothesMap.end()) {
clothesMap.insert(make_pair((*iter)[i], vector<string>()));
clothTypes.push_back((*iter)[i]);
}
clothesMap[(*iter)[i]].push_back((*iter)[i - 1]);
}
}
}
printf("\n");
printf("clothesMap:\n");
for (cmIter = clothesMap.begin(); cmIter != clothesMap.end(); cmIter++) {
(*cmIter).first == elements of clothTypes vector
cout << "[" << (*cmIter).first << "]: ";
for (vector<string>::iterator tmp = ((*cmIter).second).begin(); tmp != ((*cmIter).second).end(); tmp++) {
cout << *tmp << " ";
}
cout << endl;
answer *= ((*cmIter).second).size() + 1;
}
printf("\n");
return answer - 1;
}
|
cs |
<제출용 코드>
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
|
#include <string>
#include <vector>
#include <map>
using namespace std;
int solution(vector<vector<string>> clothes) {
int answer = 1;
vector<vector<string>>::iterator iter;
map<string, vector<string>> clothesMap;
map<string, vector<string>>::iterator cmIter;
for (iter = clothes.begin(); iter != clothes.end(); iter++) {
for (int i = 1; i < (*iter).size(); i += 2) {
if (clothesMap.find((*iter)[i]) != clothesMap.end()) {
clothesMap.insert(make_pair((*iter)[i], vector<string>()));
}
clothesMap[(*iter)[i]].push_back((*iter)[i - 1]);
}
}
for (cmIter = clothesMap.begin(); cmIter != clothesMap.end(); cmIter++) {
answer *= ((*cmIter).second).size() + 1;
}
return answer - 1;
}
|
cs |