히비스서커스의 블로그

[Programmers] 위장 본문

Theory/Algorithm

[Programmers] 위장

HibisCircus 2021. 9. 2. 00:08
728x90

프로그래머스 코딩테스트 문제 중 해시를 이용해야하는 문제 위장에 대해 파이썬으로 해결한 풀이와 해설입니다.

 

문제링크

 

https://programmers.co.kr/learn/courses/30/lessons/42578

 

코딩테스트 연습 - 위장

 

programmers.co.kr

 

solution

 

def solution(clothes):
    hash = dict()
    for i, cloth in enumerate(clothes):
        if cloth[1] in hash:
            hash[cloth[1]] += 1
        else:
            hash[cloth[1]] = 2
    answer = 1
    for j, value in enumerate(hash.values()):
        answer *= value
    return answer-1

 

해설

 

저는 크게 2파트로 나누어 해결하였습니다. 먼저, 종류 당 옷의 개수 +1 인 딕셔너리를 만들었습니다. 그 후 딕셔너리에서 종류 당 옷의 개수 +1 된 값들을 모두 곱한 후 -1을 해주어 구하였습니다.

 

종류 당 옷의 개수 +1 인 딕셔너리를 만드는 과정

1. hash라는 딕셔너리를 만듭니다.

2. for문을 돌며 옷의 종류가 없는 경우 딕셔너리에 추가하고 값을 2를 넣어주고 있는 경우 값에 1을 더해줍니다.

 

곱한 후 -1을 해주는 과정

1. answer라는 변수에 1을 할당한 후

2. for문을 돌며 hash의 값들을 뽑아 곱해준 후 -1을 해준 값을 반환합니다.

 

 

 

-히비스서커스-

 

728x90

'Theory > Algorithm' 카테고리의 다른 글

[Programmers] 베스트앨범  (0) 2021.09.03
[Algorithm] 해시법  (0) 2021.08.26
[Programmers] 기능개발  (0) 2021.08.21
[Programmers] 더 맵게  (2) 2021.08.20
[Algorithm] 선형검색 이진검색  (0) 2021.02.04