jo16
좌충우돌 기록기
jo16
전체 방문자
오늘
어제
  • 분류 전체보기 (30)
    • NLP (1)
    • 일반 (0)
    • 취업 (1)
    • 42seoul (1)
    • 운영체제 (1)
    • 컨퍼런스 (1)
    • 데이터베이스시스템 (5)
    • 알고리즘 (10)
    • 회고 (0)
    • Deep Learning Specializatio.. (9)
      • Neural Networks and Deep Le.. (4)
      • Improving Deep Neural Netwo.. (3)
      • Convolutional Neural Networ.. (0)
      • Sequence Models (0)
      • Structing Machine Learning .. (2)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • Ai
  • 강의정리
  • relational model
  • 첫 취준
  • 데이터베이스시스템
  • 머신러닝
  • mlx
  • dbms
  • cs
  • 컴퓨터공학
  • 삼성SW역량테스트
  • relational algebra
  • 네이버 deview
  • KEY
  • 삼성대학생인턴
  • 개발자컨퍼런스
  • 42seoul
  • Computer Graphics
  • 복습
  • Cub3D
  • raycasting
  • NAVERDEVIEW2023
  • 딥러닝

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
jo16

좌충우돌 기록기

프로그래머스 의상 (C++)
알고리즘

프로그래머스 의상 (C++)

2024. 7. 16. 12:12

1. 문제 설명

 

2. 문제 해결

경우의 수를 생각하면 쉽게 해결할 수 있다. 만약 한 카테고리에 의상이 2개 있으면, (안 입음, 1개입음, 2개입음) 해서 총 경우의 수가 3가지이다. 그렇게 (카테고리 내 의상의 수 + 1 )를 모두 곱해준다음 1을 빼주면 된다. (모두 안 입는 경우의 수는 존재하지 않으므로) 

자료구조는 c++에 있는 map을 활용하였다. 

 

몰랐던 부분 : map 내 초기화가 되지 않은 Key가 들어갈 때 자동으로 0이 초기화되기 때문에, 굳이 조건문을 나눌 필요가 없다. 그리고 for문을 쓰기가 애매해서 auto를 처음 써 보았다.  

 

3. 코드

#include <string>
#include <vector>
#include <map>

using namespace std;

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

'알고리즘' 카테고리의 다른 글

프로그래머스 H-index (C++)  (0) 2024.07.17
프로그래머스 기능개발 (C++)  (0) 2024.07.17
프로그래머스 구명보트 (C++)  (0) 2024.07.16
프로그래머스 전화번호목록 (C++)  (0) 2024.07.15
프로그래머스 조이스틱 (C++)  (1) 2024.07.15
    '알고리즘' 카테고리의 다른 글
    • 프로그래머스 H-index (C++)
    • 프로그래머스 기능개발 (C++)
    • 프로그래머스 구명보트 (C++)
    • 프로그래머스 전화번호목록 (C++)
    jo16
    jo16
    공부한 것들을 기록합니다.

    티스토리툴바