[Programmers]#Level2_의상, 해시, unordered_map

2024. 3. 21. 14:16· 문제 풀이/Programmers 문제 풀이
목차
  1. #1. 문제
  2. #2. 풀이
  3. 1. unordered_map
  4. 2. 해시 자료구조
  5. 3. 의상 종류 - 갯수를 um에 저장하고, 경우의 수를 세자!
  6. #3. 코드

 

#1. 문제

 

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 


 

#2. 풀이

 

1. unordered_map

 

 

[Basic C++] #72_unordered_map

#1. 개념 1. unordered_map [정의] : unordered_map은 C++ STL에서 제공하는 연관 컨테이너입니다. [특징] : unordered_map은 key와 value를 쌍으로 해시 자료구조에 저장합니다. [map과 차이점] : unordered_map은 내부적

webddevys.tistory.com

 

unordered_map 컨테이너는 C++ 표준 라이브러리에서 제공하는 연관 컨테이너입니다. unordered_map 컨테이너는 키와 값을 쌍으로 해시 자료구조에 저장하며, 중복을 허용하지 않고 내부적으로 정렬 작업을 수행하지 않습니다.

 

2. 해시 자료구조

 

 

[Basic C++] #40_해시함수, 비순차 연관 컨테이너, 해시 테이블

[Basic C++] #40_해시 함수, 비순차 연관 컨테이너, 해시 테이블 C++ 개발에서 "해시 함수"에 대해 알아보겠습니다. "전문가를 위한 C"의 16 항목, "컨테이너와 반복자 이해하기"에 해당하는 내용입니다.

webddevys.tistory.com

 

해시 자료구조는 해시 함수와 해시 테이블로 키와 값을 쌍으로 저장하는 비 선형 연결 자료구조입니다. 해시 자료구조는 입력받은 키를 해시 함수를 통해 '해시 함수'로 변환하고, 이에 대응하는 값을 저장하는 해시 테이블의 인덱스로 활용합니다. 해시 자료구조의 접근 성능은 선형 시간 복잡도로 빠른 접근 성능을 제공하지만, 해시 함수에 대한 강한 의존성과 해시 충돌의 단점이 있습니다.

 

3. 의상 종류 - 갯수를 um에 저장하고, 경우의 수를 세자!

 

  1. 먼저, 주어진 의상 정보를 통해 um 컨테이너에 { 의상 종류, 개수 }를 쌍으로 저장합니다.
  2. 그리고, um을 순회하며 각 의상 종류 별 개수+1을 거듭해서 곱해주며, 결과 값을 찾습니다.
  3. 이때, 최종 결과 값에서 각 의상 종류를 모두 입지 않은 경우를 빼주어야 합니다!

 


 

#3. 코드

 

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

using namespace std;

int solution(vector<vector<string>> clothes) {
    int answer = 1;

    unordered_map<string, int> um;
    
    for(int i=0; i<(int)clothes.size(); ++i)
        um[clothes[i][1]]++;
    
    for(auto it = begin(um); it != end(um); ++it)
        answer *= (it->second+1);
    
    return answer-1;
}

 


 

 

 

 

저작자표시 (새창열림)

'문제 풀이 > Programmers 문제 풀이' 카테고리의 다른 글

[Programmers]#Level2_캐시, unordered_map 컨테이너, LRU, transform 알고리즘  (0) 2024.03.21
[Programmers]#Level2_땅 따먹기, DP  (0) 2024.03.21
[Programmers]#Level2_주식가격, 스택, 히스토그램 유형  (0) 2024.03.21
[Programmers]#Level2_연속 부분 수열 합의 개수, 투 포인터 알고리즘, set 컨테이너  (1) 2024.01.06
[Programmers_C++]#Level2_멀리 뛰기, dp, 동적 프로그래밍  (0) 2023.12.24
  1. #1. 문제
  2. #2. 풀이
  3. 1. unordered_map
  4. 2. 해시 자료구조
  5. 3. 의상 종류 - 갯수를 um에 저장하고, 경우의 수를 세자!
  6. #3. 코드
'문제 풀이/Programmers 문제 풀이' 카테고리의 다른 글
  • [Programmers]#Level2_캐시, unordered_map 컨테이너, LRU, transform 알고리즘
  • [Programmers]#Level2_땅 따먹기, DP
  • [Programmers]#Level2_주식가격, 스택, 히스토그램 유형
  • [Programmers]#Level2_연속 부분 수열 합의 개수, 투 포인터 알고리즘, set 컨테이너
Hardii2
Hardii2
Hardii2
개발 블로그
Hardii2
전체
오늘
어제
  • 분류 전체보기
    • 알고리즘
    • 웹 개발
      • Node.js
      • React
    • 게임개발
      • DirectX12
      • 관련 지식
      • Unreal C++
      • Unreal 블루프린트
    • 언어
      • Effective C++
      • Basic C++
      • 디자인 패턴
      • 자료구조
      • 기술 질문
    • 문제 풀이
      • BOJ 문제 풀이
      • Programmers 문제 풀이
      • geeksForgeeks 문제 풀이
    • 수학
      • 확률과 통계
      • 게임수학
    • 개인프로젝트
    • 그룹프로젝트
      • PM
      • Dev
    • Github

블로그 메뉴

  • 홈
  • 글쓰기

공지사항

인기 글

태그

  • programmers
  • 알고리즘
  • unreal
  • C++
  • BOJ
  • 우선순위 큐
  • 그래프
  • 디자인 패턴
  • 개발
  • 정렬
  • Unreal Blueprint
  • dfs
  • DP
  • 트리
  • stl
  • set
  • 최단 경로
  • 기술 질문
  • Effective C++
  • BFS

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.2
Hardii2
[Programmers]#Level2_의상, 해시, unordered_map
상단으로

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.