1 minute read

프로그래머스 코딩테스트 > 해시

hash 는 데이터의 효율적인 저장과 검색을 위해 ‘Key’와 ‘value ‘ 의 셋트로 구성된다. 파이썬에서는 dictionary 로 구현된다.

dict_obj = {"Fruit":["Mango","Banana"], "Color":["Blue", "Red"]}

#print(dict_obj["Fruit"]) # ["Mango", "Banana"]

update 하는 방법 dict_obj["taste"] = ["sweet", "bit"]

혹은 dict_obj 처럼 value가 배열로 정리되고 있다면 append 메소드를 이용해서 value 값 추가 가능.

의상 문제도 value 를 배열로 관리해서 풀 수 있었다.

문제보기

입출력 예시 clothes = [[“yellow_hat”, “headgear”], [“blue_sunglasses”, “eyewear”], [“green_turban”, “headgear”]] return = 5

def solution(clothes):
    hash = dict()
    num_cat = []
    result = 1
    for name, cat in clothes:
        if cat in hash:
            hash[cat].append(name)
        else:
            hash[cat] = [name]
# {"eyewear":["blue_sunglasses"], "headgear":["yellow_hat","green_turban"]}
    for key in hash:
        num_cat.append(len(hash[key]))
    for num in num_cat:
        result = result * (num+1)
    return result - 1

result 에 num+1 을 곱하는 이유는 옷을 입고, 안입고 경우의 수는 2가지 이기 때문이다. 전부 안입는 경우는 제외해야 하기 때문에 마지막에 result -1 한 값을 출력한다.

Updated:

Leave a comment