문제링크
programmers.co.kr/learn/courses/30/lessons/42578
Python
from collections import defaultdict
def solution(clothes):
answer = 0
dic=defaultdict(int)
for i in clothes:
dic[i[1]]+=1
multiple=1
for i in dic:
multiple*=dic[i]+1
return multiple-1
아이디어: 경우의 수 세기 문제. 아무것도 안입을 수는 없으므로 옷종류+1을 곱하고 마지막에 1뺌.
C++
#include<iostream>
#include <string>
#include <vector>
#include <unordered_map>
using namespace std;
int solution(vector<vector<string>> clothes) {
unordered_map<string,int>hash_map;
for (int i=0; i<clothes.size();i++){
hash_map[clothes[i][1]]+=1;
}
int multiple=1;
for (int j=0; j<hash_map.size();j++){
cout<<hash_map[clothes[j][1]]<<endl;
}
/*
for (auto itr= hash_map.begin();itr!=hash_map.end();++itr){
cout<<itr->first<<" "<<itr->second<<endl;
}
*/
for (auto itr= hash_map.begin();itr!=hash_map.end();++itr){
multiple*=(itr->second)+1;
}
return multiple-1;
}
아이디어: 파이썬과 동일
'알고리즘' 카테고리의 다른 글
[프로그래머스] 전화번호 목록 (0) | 2021.05.03 |
---|---|
Python 코딩테스트 끄적끄적 (0) | 2021.04.20 |
C++ 코딩테스트 끄적끄적 (0) | 2021.04.20 |
[프로그래머스] 완주하지 못한 선수 (파이썬, C++) (0) | 2021.04.20 |