반응형
https://school.programmers.co.kr/learn/courses/30/lessons/42578
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
풀이
Hash 형식으로 풀었다
너무 어려웠다........
마지막에 옷 조합을 생각하는게 힘들었다.
힌트를 보고 말았다.. 근데 안보고 했으면 못 풀었을듯
사실상 조합은 수학문제 같다
옷을 입을 경우, 안 입을 경우 두가지를 생각하는게 중요했다.
예를 들어 모자와 안경 두가지의 종류가 있을 경우의 수
(모자, 안경)
(0, 0)
(1, 0)
(0, 1)
(1, 1)
총 4 가지 인데 둘다 안입었을 경우 (0, 0)은 빼야 함으로
4 - 1 = 3 이므로 답은 3이 된다
즉 2 * 2 - 1 하면 답이 나온다.
def solution(clothes):
answer = 0
d = {} #dictionary
for i in clothes:
if i[1] in d: # 같은 key가 이미 있다면
d[i[1]].append(i[0])
else:
d.update({i[1]: [i[0]]}) #value는 리스트로 만드는게 중요
len(d) # 옷 종류의 갯수
dic_values = d.values()
dic_values = list(dic_values) # list로 바꿔주어야한다.
answer = 1
for i in dic_values:
print(len(i)+1)
answer *= len(i)+1
answer = answer - 1
return answer
반응형
'코딩 테스트 > Programmers' 카테고리의 다른 글
[Python] [Level 2] 프린터 (Priority Queue 우선순위 큐) (0) | 2023.03.03 |
---|---|
[Python] [Level 2] [1차] 뉴스 클러스터링 (feat. 다중 집합의 교집합, 합집합) (isalpha() 함수 이용하기) (0) | 2023.03.02 |
[Python] [Level 2] 기능 개발 (0) | 2022.11.05 |
[Python] [Level 2] n^2 배열 자르기 (0) | 2022.11.04 |
[Python] [Level 2] 괄호 회전하기 (0) | 2022.11.03 |