Algorithm/ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€

[ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€ / C++] μœ„μž₯

meeeeejin 2021. 1. 23. 00:21

 

문제 링크: programmers.co.kr/learn/courses/30/lessons/42578

 

μ½”λ”©ν…ŒμŠ€νŠΈ μ—°μŠ΅ - μœ„μž₯

 

programmers.co.kr

 

풀이

 

μƒμ˜μ˜ μ’…λ₯˜κ°€ A, B, C 3가지일 경우

1. Aλ₯Ό μž…λŠ”λ‹€.

2. Bλ₯Ό μž…λŠ”λ‹€.

3. Cλ₯Ό μž…λŠ”λ‹€.

4. μƒμ˜λ₯Ό μž…μ§€ μ•ŠλŠ”λ‹€. 

μœ„μ™€ 같이 4가지 κ²½μš°κ°€ μžˆμ„ 수 μžˆλ‹€. 

 

λ”°λΌμ„œ 옷의 μ’…λ₯˜μ— 따라 (ν•΄λ‹Ή μ’…λ₯˜μ˜ 옷 개수 + 1) 가지 경우의 μˆ˜κ°€ 생긴닀. ν•˜μ§€λ§Œ ν•˜λ£¨μ— ν•œ 가지 μ΄μƒμ˜ μ˜·μ„ κΌ­ μ°©μš©ν•΄μ•Ό ν•˜λ―€λ‘œ "λͺ¨λ“  μ˜·μ„ μž…μ§€ μ•ŠλŠ”λ‹€"λΌλŠ” 경우의 수λ₯Ό λΉΌμ€˜μ•Ό ν•œλ‹€. (answer - 1을 ν•˜λŠ” 이유)

 

[ μ˜μƒμ˜ μ’…λ₯˜: ν•΄λ‹Ή μ’…λ₯˜ μ˜μƒμ˜ 개수 ]λŠ” unordered_map을 μ΄μš©ν•΄ μ €μž₯ν–ˆλ‹€. 

 

 

 

 

μ†ŒμŠ€μ½”λ“œ

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <string>
#include <vector>
#include <unordered_map>
 
using namespace std;
 
int solution(vector<vector<string>> clothes) {
    int answer = 1;
    unordered_map<stringint> m;
 
    for(auto it: clothes)
        m[it[1]]++;
    
    for(pair<stringint> atom: m)
        answer *= (atom.second + 1);
    
    return answer - 1;
}
cs

 

ν…ŒμŠ€νŠΈ κ²°κ³Ό

 

 

 

κ³΅λΆ€ν•œ 것을 μ •λ¦¬ν•œ λ‚΄μš©μž…λ‹ˆλ‹€. μˆ˜μ •ν•  뢀뢄이 μžˆλ‹€λ©΄ μ•Œλ €μ£Όμ‹œλ©΄ κ°μ‚¬ν•˜κ² μŠ΅λ‹ˆλ‹€ :)

 

 

 

728x90