사용 언어 - Python3
문제 - 폰켓몬
정답
해시 (정답 맞춘 여부 X)
nums/2 포켓몬 뽑을 때 중복을 제거한 포켓몬 사이에서 뽑아주면, answer = nums/2
3개를 뽑아야하는데, 중복을 제거하니 2종류(len(nums)) 밖에 없다면 len(nums)을 출력한다.
min(len(nums), choose)
def solution(nums):
answer = 0
choose = int(len(nums)/2)
nums = set(nums)
answer = min(len(nums),choose)
return answer
hash 사용하기
1. dictionary의 key, value 처럼 HashDict에 {n,1}를 저장한다.
value 값은 굳이 필요없고, 한개를 넣었다는 확인만 해준다.
2. min(len(HashDict), len(nums)//2)
# 해시 사용하기
def solution(nums):
answer = 0
HashDict = {}
for n in nums:
HashDict[n] = 1
# {숫자번호,1} -> 중복된 숫자번호는 덮어씌워짐
# 중복된 숫자번호가 없는 경우 = 뽑으려는 포켓몬 개수
if len(nums)//2 <= len(HashDict):
return len(nums)//2
# 중복된 숫자번호가 있는 경우 = HashDict의 개수
return len(HashDict)
# 해시 사용하기
def solution(nums):
answer = 0
HashDict = {}
for n in nums:
HashDict[n] = 1
# {숫자번호,1} -> 중복된 숫자번호는 덮어씌워짐
return min(len(HashDict), len(nums)//2)
레퍼런스
- 정답 깃허브
'Algorithm > 해시' 카테고리의 다른 글
[프로그래머스 lv 3] 베스트앨범 (0) | 2023.12.04 |
---|---|
[프로그래머스 lv 2] 의상 (2) | 2023.12.04 |
[프로그래머스 lv 2] 전화번호 목록 (0) | 2023.12.04 |
[프로그래머스 lv1] 완주하지 못한 선수 (0) | 2023.05.29 |
댓글