[プログラマー/python]ハッシュ-偽装
🤓 に答える
def solution(clothes):
answer = {}
# {'headgear': 2, 'eyewear': 1}
for i in clothes:
if i[1] in answer:
answer[i[1]] += 1
else:
answer[i[1]] = 1
cnt = 1
for i in answer.values():
cnt *= (i+1)
return cnt - 1
조합
この単語が多いので、ぜひcombinations
(i+1)
:この種の服を着ない場合、(1)増加した服cnt - 1
:何も着ていない場合は外して(1)👩🏻🏫 別の解釈
def solution(clothes):
from collections import Counter
from functools import reduce
# Counter({'headgear': 2, 'eyewear': 1})
cnt = Counter([kind for name, kind in clothes])
answer = reduce(lambda x, y: x*(y+1), cnt.values(), 1) - 1
return answer
▼Python文法
Counter(~)
collections
モジュールのCounter
クラスfrom collections import Counter
list = ['kim', 'kim', 'park', 'choi', 'kim', 'kim', 'kim', 'choi', 'park', 'choi']
result = collections.Counter(list)
print(result) # Counter({'kim': 5, 'choi': 3, 'park': 2})
reduce
functools
内蔵モジュールreduce()
関数は主に複数のデータを集計reduce(집계 함수, 순회 가능한 데이터, 초기값)
lambda
lambda 매개변수 : 표현식
from functools import reduce
result = reduce(lambda x, y: x + y, [0, 1, 2, 3, 4])
print(result) # 10
韓一平:一時的にプライドが下がったんじゃない?Reference
この問題について([プログラマー/python]ハッシュ-偽装), 我々は、より多くの情報をここで見つけました https://velog.io/@sugenius77/프로그래머스해시-위장テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol