728x90
https://school.programmers.co.kr/learn/courses/30/lessons/42578?language=python3
문제 접근
스파이가 입을 수 있는 옷의 경우의 수를 모두 구하는 문제
스파이는 한 종류의 옷을 꼭 입어야함
아이디어
각 종류의 옷의 개수 해시를 이용해 저장하고 이를 곱하여 모든 경우의 수를 구함
입지 않는 경우도 생각하기위해 모든 옷의 종류에 +1
아무 옷도 안 입는 경우를 빼주기 위해 -1
정답 코드
def solution(clothes):
# 1. 옷을 종류별로 구분하기
dic = {}
answer = 1
for i, j in clothes:
dic[j] = dic.get(j, 0) + 1 #key값이 이미 있으면 기존값+1, 아니면 0 + 1
# 2. 입지 않는 경우를 추가하여 모든 조합을 계산한다.
for key in dic:
answer *= (dic[key] + 1)
# 3. 아무 종류의 옷도 입지 않는 경우를 제외한다.
return answer - 1
옷 종류의 개수만 저장하면 되는데 굳이 이름까지 다 저장하려다 코드가 엉킴...너무 1차원적으로만 생각하는 습관이 있는듯; 결국 유튭 강의 참조함...
https://www.youtube.com/watch?v=bTMV-VeaTws
강의에서는 파이썬을 이용한 다른 풀이도 나오는데 일단 나는 기본에 집중하고 다음에 다시 풀어보는걸로 했다...
'알고리즘 > 프로그래머스 문제풀이' 카테고리의 다른 글
프로그래머스 신규아이디 추천(lv2, kotlin) (0) | 2023.03.13 |
---|---|
프로그래머스 주식가격 (0) | 2023.03.02 |
프로그래머스 짝지어 제거하기(lv2, python) (0) | 2023.02.25 |
프로그래머스 숫자의 표현(lv2, python) (0) | 2023.02.25 |
프로그래머스 최솟값 만들기(lv2, Python) (0) | 2023.02.24 |