감사쟁이야
감사쟁이의 성장기록
감사쟁이야
  • 분류 전체보기 (130)
    • Java-Spring (0)
    • ComputerScience (0)
    • Project (64)
      • TIL, WIL (57)
      • Project Retrospect (7)
    • Problem Solving (63)
    • Book Review (1)
    • Culture & Discovery (0)
    • Daily Log (2)

블로그 메뉴

  • 홈
  • 깃허브
  • 방명록
hELLO · Designed By 정상우.
감사쟁이야

감사쟁이의 성장기록

[프로그래머스] 위장 / python
Problem Solving

[프로그래머스] 위장 / python

2022. 1. 4. 10:11

1️⃣ 문제 설명

 

코딩테스트 연습 - 위장

 

programmers.co.kr

스파이들은 매일 다른 옷을 조합하여 입어 자신을 위장한다.

스파이가 가진 의상들이 담긴 2차원 배열 clothes가 주어질 때

서로 다른 옷의 조합의 수를 return

  • clothes의 각 행은 [의상의 이름, 의상의 종류]로 이루어져 있습니다.
  • 스파이는 하루에 최소 한 개의 의상은 입습니다.

2️⃣ 풀이 전 계획과 생각

  • 입력값을 받아 딕셔너리에 저장
  • 각 의상의 종류의 갯수를 다 곱한다.또한 모두 안 입는 경우는 없다고 했으니 최종 곱한 값 -1 하기
  • How? 각 경우를 다 곱해주면 된다. 각 의상의 종류별로 아무것도 안 입는 경우가 있으니 각 의상 종류마다 의상의 갯수+1 한다.

3️⃣ 풀이

def solution(clothes):
    closet = {}
    result = 1
    
    for clothe in clothes:
        key = clothe[1]
        value = clothe[0]
        if key in closet:
            closet[key].append(value)
        else:
            closet[key] = [value]

    for key, value in closet.items():
        result *= len(value)+1
    result -= 1    
    return result

4️⃣ 풀이 후 알게된 개념과 소감

  • 처음에는 안 입는 경우의 수를 떠오르지가 않았다.
  • → 입력값을 보며 경우의 수를 파악해보니, 안하는 경우의 수도 한가지의 경우의 수임을 알게 되었고, 추가해주었다.
  • 해쉬테이블 저장 :
    • key값이 초기화 되지 않은 경우 → hashtable[key] = value
    • 그외 → hashtable[key].append(value)

'Problem Solving' 카테고리의 다른 글

[백준] 10819 : 차이를 최대로 / python  (0) 2022.01.25
[프로그래머스] 더 맵게 / python  (0) 2022.01.04
[프로그래머스] 올바른 괄호 문자열 만들기 (2020 KAKAO BLIND) / python  (0) 2021.12.29
[프로그래머스] 구명보트 / python  (0) 2021.12.29
[프로그래머스] 기능개발 / python  (0) 2021.12.29
    'Problem Solving' 카테고리의 다른 글
    • [백준] 10819 : 차이를 최대로 / python
    • [프로그래머스] 더 맵게 / python
    • [프로그래머스] 올바른 괄호 문자열 만들기 (2020 KAKAO BLIND) / python
    • [프로그래머스] 구명보트 / python
    감사쟁이야
    감사쟁이야
    sunzero0116@gmail.com

    티스토리툴바