코테
[프로그래머스] <더 맵게> 파이썬
SNNP
2021. 4. 4. 16:50
programmers.co.kr/learn/courses/30/lessons/42626
코딩테스트 연습 - 더 맵게
매운 것을 좋아하는 Leo는 모든 음식의 스코빌 지수를 K 이상으로 만들고 싶습니다. 모든 음식의 스코빌 지수를 K 이상으로 만들기 위해 Leo는 스코빌 지수가 가장 낮은 두 개의 음식을 아래와 같
programmers.co.kr
from collections import deque
def solution(scovilles, K):
answer = 0
while True :
scovilles.sort()
scoville = deque(scovilles)
if scoville[0] >= K : return answer
a, b = scoville.popleft(), scoville.popleft()
scoville.append(a+b*2)
scovilles = list(scoville)
answer+=1
정확성 테스트
테스트 1 〉 | 실패 (런타임 에러) |
테스트 2 〉 | 통과 (0.01ms, 10.2MB) |
테스트 3 〉 | 실패 (런타임 에러) |
테스트 4 〉 | 통과 (0.01ms, 10.2MB) |
테스트 5 〉 | 통과 (0.01ms, 10.2MB) |
테스트 6 〉 | 통과 (2.92ms, 10.2MB) |
테스트 7 〉 | 통과 (2.38ms, 10.2MB) |
테스트 8 〉 | 실패 (런타임 에러) |
테스트 9 〉 | 통과 (0.12ms, 10.1MB) |
테스트 10 〉 | 통과 (2.00ms, 10.2MB) |
테스트 11 〉 | 통과 (0.74ms, 10.2MB) |
테스트 12 〉 | 통과 (6.45ms, 10.2MB) |
테스트 13 〉 | 통과 (2.71ms, 10.2MB) |
테스트 14 〉 | 실패 (런타임 에러) |
테스트 15 〉 | 통과 (3.98ms, 10.1MB) |
테스트 16 〉 | 통과 (0.01ms, 10.3MB) |
효율성 테스트
테스트 1 〉 | 실패 (시간 초과) |
테스트 2 〉 | 실패 (시간 초과) |
테스트 3 〉 | 실패 (시간 초과) |
테스트 4 〉 | 실패 (시간 초과) |
테스트 5 〉 | 실패 (시간 초과) |
채점 결과
정확성: 57.1
효율성: 0.0
합계: 57.1 / 100.0
바로 heapq 사용
정확성은 똑같이 틀렸지만, 효율성은 다 통과
import heapq
def solution(scovilles, K):
heapq.heapify(scovilles)
answer = 0
while True :
if scovilles[0] >= K : return answer
a,b = heapq.heappop(scovilles), heapq.heappop(scovilles)
heapq.heappush(scovilles, a+b*2)
answer += 1
정확성 테스트
테스트 1 〉 | 실패 (런타임 에러) |
테스트 2 〉 | 통과 (0.01ms, 10.2MB) |
테스트 3 〉 | 실패 (런타임 에러) |
테스트 4 〉 | 통과 (0.01ms, 10.2MB) |
테스트 5 〉 | 통과 (0.01ms, 10.2MB) |
테스트 6 〉 | 통과 (0.68ms, 10MB) |
테스트 7 〉 | 통과 (0.57ms, 10.2MB) |
테스트 8 〉 | 실패 (런타임 에러) |
테스트 9 〉 | 통과 (0.06ms, 10.2MB) |
테스트 10 〉 | 통과 (0.51ms, 10.2MB) |
테스트 11 〉 | 통과 (0.24ms, 10.2MB) |
테스트 12 〉 | 통과 (1.17ms, 10.1MB) |
테스트 13 〉 | 통과 (0.55ms, 10.2MB) |
테스트 14 〉 | 실패 (런타임 에러) |
테스트 15 〉 | 통과 (0.89ms, 10.2MB) |
테스트 16 〉 | 통과 (0.01ms, 10.2MB) |
효율성 테스트
테스트 1 〉 | 통과 (181.44ms, 16.2MB) |
테스트 2 〉 | 통과 (366.70ms, 21.9MB) |
테스트 3 〉 | 통과 (1889.12ms, 49.7MB) |
테스트 4 〉 | 통과 (136.85ms, 14.9MB) |
테스트 5 〉 | 통과 (1910.40ms, 51.8MB) |
채점 결과
정확성: 57.1
효율성: 23.8
합계: 81.0 / 100.0
|
이걸 안 봄
import heapq
def solution(scovilles, K):
heapq.heapify(scovilles)
answer = 0
while True :
if scovilles[0] >= K : return answer
if len(scovilles) < 2 : return -1
a,b = heapq.heappop(scovilles), heapq.heappop(scovilles)
heapq.heappush(scovilles, a+b*2)
answer += 1
정확성 테스트
테스트 1 〉 | 통과 (0.01ms, 10.2MB) |
테스트 2 〉 | 통과 (0.01ms, 10.3MB) |
테스트 3 〉 | 통과 (0.01ms, 10.2MB) |
테스트 4 〉 | 통과 (0.01ms, 10.2MB) |
테스트 5 〉 | 통과 (0.01ms, 10.2MB) |
테스트 6 〉 | 통과 (0.79ms, 10.1MB) |
테스트 7 〉 | 통과 (0.71ms, 10.2MB) |
테스트 8 〉 | 통과 (0.08ms, 10.2MB) |
테스트 9 〉 | 통과 (0.07ms, 10.2MB) |
테스트 10 〉 | 통과 (0.52ms, 10.3MB) |
테스트 11 〉 | 통과 (0.31ms, 10.2MB) |
테스트 12 〉 | 통과 (1.06ms, 10.1MB) |
테스트 13 〉 | 통과 (0.65ms, 10.2MB) |
테스트 14 〉 | 통과 (0.02ms, 10.2MB) |
테스트 15 〉 | 통과 (0.79ms, 10.2MB) |
테스트 16 〉 | 통과 (0.01ms, 10.2MB) |
효율성 테스트
테스트 1 〉 | 통과 (179.34ms, 16.1MB) |
테스트 2 〉 | 통과 (402.40ms, 21.9MB) |
테스트 3 〉 | 통과 (1961.17ms, 49.9MB) |
테스트 4 〉 | 통과 (140.68ms, 15MB) |
테스트 5 〉 | 통과 (2145.56ms, 51.9MB) |
채점 결과
정확성: 76.2
효율성: 23.8
합계: 100.0 / 100.0