프로그래머스/Level 2
[해시 / 프로그래머스] 42578번 : 위장
ydin
2022. 9. 15. 23:36
- 문제 : https://school.programmers.co.kr/learn/courses/30/lessons/42578
마지막에 answer - 1을 해주는 이유는 아무것도 입지 않는 경우를 빼줘야하기 때문이다
문제 이해
1. dic에 옷의 종류별로 몇개인지 숫자를 센 다음에
2. 각 옷들로 몇 가지의 조합이 되는지 알아보는 거니까 (각 옷의 종류 + 1)을 해서 다 곱해준다
+ 1을 하는 이유는 그 옷을 입지 않는 경우도 있기 때문이다
3. 이렇게 하면 모든 옷을 입지 않는 경우도 포함되므로 이는 빼주고 반환해주면 답이다
- 정답 풀이 :
def solution(clothes):
#의상 종류, 의상 이름 리스트
dic = {}
for clothe in clothes:
a, b = clothe[0], clothe[1]
if b in dic:
dic[b] += 1
else:
dic[b] = 1
answer = 1
for i in dic:
answer *= (dic[i] + 1)
return answer - 1
- 시도해본 풀이 :
def solution(clothes):
#의상 종류, 의상 이름 리스트
dic = {}
for clothe in clothes:
a, b = clothe[0], clothe[1]
if b in dic:
dic[b] += 1
else:
dic[b] = 1
answer = 1
for i in dic:
#여기랑
answer *= dic[i]
#여기가 미흡했음
answer += len(clothes)
return answer