happyso
study with happyso
happyso
전체 방문자
오늘
어제
  • 분류 전체보기 (300)
    • GIT (3)
    • 컴퓨터 기본 개념 (29)
    • 알고리즘 (125)
      • 알고리즘 문제 (115)
      • 알고리즘 개념 (10)
    • Go (2)
    • 클라우드 (53)
      • DevOps (3)
      • Kubernetes(쿠버네티스) (33)
      • AWS (6)
      • CKA (8)
    • 리눅스(Linux) (18)
      • 컨테이너(Container) (8)
    • Front (22)
      • JavaScript (2)
      • React (20)
    • Python (21)
      • Python 웹 크롤링 (11)
      • Django (7)
      • MachineLearning (3)
    • 데이터베이스 (6)
      • MariaDB (2)
      • MongoDB (4)
    • C언어 (5)
    • Trouble Shooting (2)
    • 네트워크 (8)
      • CCNA (5)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • kubernetes
  • 15
  • 18
  • apply
  • edit
  • replace
  • Patch

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
happyso

study with happyso

[python] 프로그래머스 > 귤고르기
알고리즘/알고리즘 문제

[python] 프로그래머스 > 귤고르기

2023. 5. 30. 09:26

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

 

프로그래머스

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

programmers.co.kr

나의 풀이 - 시간초과

def solution(k, tangerine):
    answer = 0
    clSum = 0
    cntList = []
    for st in list(set(tangerine)):
        cntList.append(tangerine.count(st))
    cntList.sort(reverse=True)
    for cl in cntList:
        clSum += cl
        answer += 1
        if k <= clSum:
            return answer
    return answer
def solution(k, tangerine):
    answer = 0
    clSum = 0
    cntList = []
    for st in set(tangerine):
        cntList.append(tangerine.count(st))
    cntList.sort()
    while True:
        clSum += cntList.pop()
        answer += 1
        if k <= clSum:
            return answer
    return answer

  • count 함수를 이용해 푸니 시간초과가 났다.

나의 풀이 - 다른 사람 풀이 참조

from collections import Counter

def solution(k, tangerine):
    answer = 0
    sum = 0
    ct = Counter(tangerine)
    ct = ct.most_common()
    for c in ct:
        sum += c[1]
        answer += 1
        if k <= sum:
            return answer
    return answer
  • 시간을 도저히 어떻게 줄여야 할지 모르겠어서 결국 검색을 했다.
  • Counter 함수라는 것이 있는지 처음 알았다.
  • Dictionary의 키,값을 뽑아 사용하는것이 O(n) 이라 시간복잡도가 낮다고 한다.
저작자표시 비영리

'알고리즘 > 알고리즘 문제' 카테고리의 다른 글

[python] 프로그래머스 > k진수에서 소수 개수 구하기  (0) 2023.06.06
[python] 프로그래머스 > 두 큐 합 같게 만들기  (0) 2023.06.01
[python] 프로그래머스 > 구명보트  (0) 2023.05.30
[python] 프로그래머스 > 연속된 부분 수열의 합  (0) 2023.05.29
[python] 프로그래머스 > 마법의 엘리베이터  (0) 2023.05.25
    '알고리즘/알고리즘 문제' 카테고리의 다른 글
    • [python] 프로그래머스 > k진수에서 소수 개수 구하기
    • [python] 프로그래머스 > 두 큐 합 같게 만들기
    • [python] 프로그래머스 > 구명보트
    • [python] 프로그래머스 > 연속된 부분 수열의 합
    happyso
    happyso

    티스토리툴바