티스토리 뷰

의상의 이름은 크게 중요하지 않다. 의상 종류에 몇가지의 의상이 있는지 숫자로 바꾸면 된다.

종류 이름
얼굴 안경, 선글라스
상의 티셔츠
하의 바지
겉옷 코트

before

    unordered_map<string,int>map;
    for(auto i : clothes) {
        map[i[1]]++;
    }

2차원 배열을 어케 쓰나 했는데, 그냥 각 element마다 [0]으로 옷 이름, [1]로 옷 종류 접근이 가능했다.

key value
얼굴 2
상의 1
하의 1
겉옷 1

after

 

옷의 조합 계산하기

하.. 나란 바보.. 어케 이런방법을 생각 못하다니

나는 옷 껴입을 개수 별로 계산을 해서 더할 생각을 하고있었는데, 그냥

종류 이름
얼굴 안경, 선글라스, 안입음
상의 티셔츠, 안입음
하의 바지, 안입음
겉옷 코트, 안입음

이렇게 옷 종류에 안입는 선택지를 하나 더 해서 모든 경우의 수 계산을 위해 곱해주면 된다.

하루에 최소 한 개의 의상을 입는다는 제한 사항을 고려하여, 최종 결과 값에서 1(안입음만 걸리는 경우)을 빼주면 된다.

#include <string>
#include <vector>
#include <unordered_map>

using namespace std;

int solution(vector<vector<string>> clothes) {
    int answer = 1;
    unordered_map<string,int>map;
    for(auto i : clothes) {
        map[i[1]]++;
    }
    
    for(auto ele : map) {
        answer *= ele.second+1;
    }
    return answer-1;
}

 

'■ 알고리즘 > ◻ Programmers' 카테고리의 다른 글

[C++]가장 큰 수  (0) 2022.11.09
[C++] K번째수  (0) 2022.11.09
[C++] 전화번호 목록  (0) 2022.11.09
[C++] 폰켓몬  (0) 2022.11.08
[C++] 완주하지 못한 선수  (0) 2022.11.08
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/11   »
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
글 보관함