-
[Algorithm] 프로그래머스 위장 - C++, unordered_map쾌락없는 책임 (공부)/알고리즘 문제풀이 2022. 5. 11. 20:10반응형
https://programmers.co.kr/learn/courses/30/lessons/42578
#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 cloth : clothes){ map[cloth[1]]++; } for(auto pair : map){ answer *= pair.second + 1; } return answer-1; }
unordered_map을 잘 이해해두면 쉽게 풀 수 있는 문제였습니다. 옷의 카테고리를 key로 사용해 같은 카테고리의 옷끼리 묶어둔뒤 (각 카테고리에 있는 가짓수 + 1)을 전부 곱해준 뒤 1을 빼면 되는 문제였습니다.
여기서 answer에 1을 더해서 곱하는 이유는 1이 뜻하는게 '아무것도 입지 않은 상태' 이며 마지막에 1을 빼주는 이유는 '모든 카테고리에서 아무것도 입지 않은 경우를 제외' 하기 위함입니다.
반응형'쾌락없는 책임 (공부) > 알고리즘 문제풀이' 카테고리의 다른 글
[Algorithm] 프로그래머스 베스트 앨범 - C++, map, unordered_map (0) 2022.05.13 [Algorithm] 프로그래머스 신고 결과 받기 - C++, unordered_map, set (0) 2022.05.12 [Algorithm] 프로그래머스 전화번호 목록 - C++, unordered_map (0) 2022.05.11 [Alogorithm] 백준 20366 같이 눈사람 만들래? - C++ (0) 2022.05.10 [Algorithm] 백준 2696 중앙값 구하기 : C++, 힙, 재채점 수정 (0) 2022.05.10