_Han_
나의 개발 노트
_Han_
  • 분류 전체보기 (273)
    • 데이터 엔지니어링 (30)
    • 인프라 (3)
    • 추천시스템 (11)
    • 코딩테스트 (146)
    • 부트캠프 회고 (15)
    • 회고 (4)
    • 자격증 (1)
    • 파이썬 프로그래밍 (6)
    • 통계 (2)
    • Git (21)
    • 유니티2D (33)

최근 글

반응형
hELLO · Designed By 정상우.
_Han_

나의 개발 노트

[코딩테스트] 프로그래머스 귤 고르기 파이썬(Python)
코딩테스트

[코딩테스트] 프로그래머스 귤 고르기 파이썬(Python)

2022. 12. 1. 17:02
반응형

https://school.programmers.co.kr/learn/courses/30/lessons/138476

 

프로그래머스

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

programmers.co.kr

from collections import Counter
def solution(k, tangerine):
    counter =  Counter(tangerine)
    sorted = counter.most_common()
    result = set()
    for num, count in sorted:
        k -= count
        result.add(num)
        if k <= 0:
            break
    return len(result)

Counter 모듈을 사용하여 tangerine 리스트의 저장되어 있는 원소의 개수를 세고 most_common() 함수를 사용하여

원소의 개수를 기준으로 내림차순으로 정렬하였습니다.

예를 들어 [1, 3, 2, 5, 4, 5, 2, 3] 형태로 입력이 들어왔다면

[(3, 2), (2, 2), (5, 2), (1, 1), (4, 1)] 형태로 정렬이 됩니다.

위의 리스트에서 num, count를 꺼내면서 k 에서 count만큼 제거해주며 결과에 해당 num을 담아줍니다.

종료조건으로는 k(귤의 개수)값이 0과 같거나 작다면 종료해줍니다.

result의 길이를 반환하여 문제를 해결합니다.

 

 

반응형

'코딩테스트' 카테고리의 다른 글

[코딩테스트] 프로그래머스 보호소에서 중성화한 동물 MySQL  (0) 2022.12.02
[코딩테스트] 프로그래머스 오랜 기간 보호한 동물(2) MySQL  (0) 2022.12.02
[코딩테스트] 프로그래머스 치킨 쿠폰 파이썬(Python)  (0) 2022.12.01
[코딩테스트] 프로그래머스 오랜 기간 보호한 동물(1) MySQL  (0) 2022.12.01
[코딩테스트] 프로그래머스 재구매가 일어난 상품과 회원 리스트 구하기 MySQL  (0) 2022.11.30
    '코딩테스트' 카테고리의 다른 글
    • [코딩테스트] 프로그래머스 보호소에서 중성화한 동물 MySQL
    • [코딩테스트] 프로그래머스 오랜 기간 보호한 동물(2) MySQL
    • [코딩테스트] 프로그래머스 치킨 쿠폰 파이썬(Python)
    • [코딩테스트] 프로그래머스 오랜 기간 보호한 동물(1) MySQL
    _Han_
    _Han_
    학습한 것을 기록합니다.

    티스토리툴바