post-custom-banner

폰켓몬

def solution(nums):
    types = {}
    N = len(nums) // 2
    for num in nums:
        if num not in types:
            types[num] = 1
        else: types[num] += 1
    return min(N, len(types))

딕셔너리 자료형을 사용하면 쉽게 해시 문제를 풀 수 있다.

  1. 폰켓몬은 N마리 중 N/2마리만 가져가야함.
  2. 중복을 제거하면서 최대로 가져갈 수 있는 폰켓몬 개수 구하기

사실 중복제거를 하면 더 쉽게 문제를 풀 수 있다곤 한다

완주하지 못한 선수

  1. 참여자에 중복이 있을 수 있음을 생각하기
  2. 참여자, 완주자 모두 정렬을 한 후, 같은 인덱스끼리 다르다면 중복 되었거나 완주를 못한것임으로 그거 리턴
  3. 리턴 값이 없으면 마지막 인덱스 리턴 -> 마지막거라 안걸린거임
def solution(participant, completion):
    participant.sort()
    completion.sort()
    i = 0
    while i < len(completion):
        if participant[i] != completion[i]:
            return participant[i]
        i += 1
    return participant[-1]

조금만 생각하면 쉽게 풀 수 있는 문제였다.

profile
풀스택 개발자 가보자구~
post-custom-banner

0개의 댓글