코딩테스트 연습 - 더 맵게 | 프로그래머스 스쿨 (programmers.co.kr)
| 풀이 |
| 1. 리스트 scoville을 heapify를 사용해 힙으로 만들어준다 2. while 문을 사용해서 scoville[0]의 값이 K보다 작은 동안에만 가장 작은 값과 두 번째로 작은 값*2를 더한다 - heappush를 사용해서 더한다 - 가장 작은 값 반환 동시에 삭제하기 위해 heappop을 사용한다 3. 만약 scoville의 값이 하나밖에 없다면, return -1 |
| 회고 |
| - list인 scoville을 그대로 활용하고 싶어서 heapify를 사용했다 그냥 하면 안 됨 ㅜ ㅜ - 고친 코드의 효율성이 조금! 더 좋아서 풀이를 고친 코드로 했고 코드는 그냥 같이 첨부한다 |
| 코드 (접은 글) |
더보기
고치기 전 코드
import heapq
def solution(scoville, K):
heap = []
answer = 0
for i in scoville:
heapq.heappush(heap, i)
while heap[0]<K:
if len(heap)==1:
return -1
heapq.heappush(heap, heapq.heappop(heap)+heapq.heappop(heap)*2)
answer+=1
return answer
고친 후의 코드
import heapq
def solution(scoville, K):
heapq.heapify(scoville)
answer = 0
while scoville[0]<K:
if len(scoville)==1:
return -1
heapq.heappush(scoville, heapq.heappop(scoville)+heapq.heappop(scoville)*2)
answer+=1
return answer
| 고치기 전 코드 | 고친 후의 코드 |
![]() |
![]() |
'코테' 카테고리의 다른 글
| [java] 짝지어 제거하기 (0) | 2024.01.11 |
|---|---|
| [java] 귤 고르기 (1) | 2024.01.11 |
| [Java] 심화 1단계 (1) | 2023.11.13 |
| [java] 프로그래머스스쿨 연습문제 Lv.1 문제 모음 2 (0) | 2023.04.24 |
| [java] 프로그래머스스쿨 연습문제 Lv.1 문제 모음 1 (0) | 2023.04.13 |

