반응형
반응형
https://school.programmers.co.kr/learn/courses/30/lessons/138476
문제
귤의 개수와 귤의 크기를 받아 같은 크기의 귤을 개수만큼 리턴할 때 가작 적은 숫자 구하시오.
시도
- 귤의 개수가 1개면 1을 바로 리턴합니다.
- 귤의 크기 배열 값의 같은 값을 몇개씩 가지고 있는지 구합니다.
- 가장 많이 같은 값을 가지고 있는 순서대고 정리를 합니다.
코드
1. 첫 번째 시도
import time
def solution(k, tangerine):
if k == 1: return 1
answer = 0
st = time.time()
counter = [0] * len(set(tangerine))
for x in tangerine:
try: counter[x-1] += 1
except: counter[x-1] = 1
counter.sort(reverse=True)
for x in counter:
answer += 1
k = k - x
if k <= 0:
break
end = time.time()
print(f'time = {st - end}')
return answer
런타임 에러가 발생했습니다.
2. 런타임 에러 해결 후 코드
def solution(k, tangerine):
if k == 1: return 1
answer = 0
counter = [0] * max(tangerine)
for x in tangerine:
try: counter[x-1] += 1
except: counter[x-1] = 1
counter.sort(reverse=True)
for x in counter:
answer += 1
k = k - x
if k <= 0:
break
return answer
반응형
'코딩테스트' 카테고리의 다른 글
[프로그래머스 LV2] 연속 부분 수열 합의 개수 (0) | 2023.04.23 |
---|---|
[프로그래머스 LV2] 괄호 회전하기 (0) | 2023.04.22 |
[프로그래머스] 런타임 에러 (0) | 2023.04.20 |
[프로그래머스 LV2]최댓값과 최솟값 (0) | 2023.04.19 |
[프로그래머스 LV2]요격 시스템 (0) | 2023.04.19 |