[프로그래머스] Lv.1 폰켓몬 (Python)

seulzzang·2022년 9월 12일
0

코딩테스트 연습

목록 보기
5/44

아니 벨로그 임시저장글 어케불러옴?..
폰켓몬 글 날라갓어효.
개짜증남 지금...

📍문제

[프로그래머스] Lv.1 폰켓몬 (Python)

📍풀이

하.. 똑같은거 또 적어야해서 개빡침 뿡이다.
얘는 문제가 그렇게 어려운게 아니라서 바로 코드 ㄱㄱ

💻첫번째 코드

def solution(nums):
    answer = 0
    choice = len(nums) // 2
    new_nums = list(set(nums))
    if len(new_nums) > choice:
       return choice
    else:
       return len(new_nums)
    return answer

사실 문제 보면 알겠지만 이 문제는 조건문을 사용해줄 필요가 굳이 없다..

💻두번째 코드

def solution(nums):
    answer = 0
    choice = len(nums) // 2
    new_nums = list(set(nums))
    answer = min(len(new_nums), choice)
    return answer

new_numsnumsset을 이용하여 중복을 제거해준 list이다. 아무리 폰켓몬을 많이 가져갈 수 있어도 choice개수만큼밖에 못가져가니까 answernew_nums의 길이와 choice중 더 작은 값이 된다.
첫번째 코드에서 작성한 if문이 사실상 min(len(new_nums), choice)이 값을 찾기 위한 조건문이다.

두번째 코드를 바탕으로 return을 한줄로 완성할 수 있다.

def solution(nums):
    answer = 0
    return min(len(list(set(nums))), len(nums) // 2)

이렇게!

그리고 또 문제 제한사항에
nums의 길이(N)는 1 이상 10,000 이하의 자연수이며, 항상 짝수로 주어집니다.라고 나와있기 때문에 choice = len(nums) // 2 역시 choice = len(nums) / 2라고 작성해도 무방.. 나는 문제를 제대로 잘 안읽어서 혹시나해서 // 사용해줬다. 어리바리공듀님의 문제읽기 실수~ 제한사항도 제대로 읽자😜

profile
중요한 것은 꺾이지 않는 마음

0개의 댓글