cording test

Lv.1 폰켓몬(해쉬 사용)

JM Lee 2023. 6. 2. 16:42
728x90

코딩테스트 연습 - 폰켓몬 | 프로그래머스 스쿨 (programmers.co.kr)

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

어제 해쉬를 공부했으니 오늘 해쉬를 써먹으라는 친절한 팀원님 덕에

오늘 해쉬만 두 문제를 풀었다.

 

1. 해쉬 풀이법

def solution(nums):
    dict={}
    for n in nums:
        dict[n] = 1
        # 중복된 n이 있다면 딕셔너리의 값이 계속 1로 유지됨.(hash(value)를 통한 거르기)
        # nums 리스트의 각 원소들이 중복되지 않고 저장됨(set으로 해도 되겠는데?)
    if len(nums) // 2 <= len(dict):
        return len(nums) // 2
    return len(dict)

사실 해쉬를 다 이해했는지 찝찝한 상황에서 풀어봐서

조금 이해한 상황에 풀어보았지만

난이도가 높진 않아서 무난하게 풀었다.

 

그런데 중복되지 않는다는 점에서 set을 써도 되겠다는 생각이 들었다

 

2. set 풀이법

def solution(nums):

    # if len(nums) // 2 > num_set:
    #     return num_set
    # else:
    #     return len(nums) // 2
    return min(len(set(nums)), len(nums)//2)
    
# 주석의 내용을 min 덕분에 한 줄로 줄임!

'cording test' 카테고리의 다른 글

Lv.1 콜라 문제  (0) 2023.06.04
Lv.2 전화번호 목록(해쉬)  (0) 2023.06.02
LV.1 2016년  (0) 2023.06.02
Lv.2 피로도  (0) 2023.05.31
LV.1 대충 만든 자판  (0) 2023.05.31