HelloMinchan
처음처럼
HelloMinchan
LinkedIn
전체 방문자
오늘
어제
  • 분류 전체보기 (306)
    • Backend (4)
      • NestJS (1)
      • Express (1)
      • Spring (2)
    • Infrastructure (1)
      • AWS (1)
    • Frontend (1)
      • Next.js (1)
    • Language & Runtime (4)
      • Java (2)
      • Node.js (2)
    • Computer Science (8)
      • Computer Networks (3)
      • Operating Systems (4)
      • OOP (1)
    • 독서 (4)
      • 데이터 중심 애플리케이션 설계 (3)
      • 객체지향의 사실과 오해 (1)
    • 회고 (4)
      • Project (2)
      • Career (2)
    • Deprecated (280)

채널

  • GitHub
  • LinkedIn

최근 글

태그

  • 알고스팟
  • 프로그래밍
  • 데이터베이스
  • Algospot
  • 알고스팟Python
  • 백준
  • Baekjoon Online Judge
  • 백준Go
  • 백준C++
  • front-end
  • 프로그래머스
  • programmers
  • 프로그래머스Python
  • 백엔드
  • 코딩
  • 백준Python
  • 개발자
  • Database
  • back-end
  • 프로그래머스C++

최근 댓글

인기 글

hELLO
HelloMinchan

처음처럼

[programmers] 프로그래머스 더 맵게(Python)
Deprecated

[programmers] 프로그래머스 더 맵게(Python)

2020. 6. 19. 04:19

(주)그렙

[programmers] 프로그래머스 더 맵게

(Python)

(글쓴날 : 2020.06.19)

 


* programmers, 프로그래머스 문제 Python 언어 풀이입니다.

* 소스 코드의 저작권은 글쓴이에게 있습니다.


 

 

프로그래머스 더 맵게


1) 문제

문제 링크 : https://programmers.co.kr/learn/courses/30/lessons/42626

 

코딩테스트 연습 - 더 맵게

매운 것을 좋아하는 Leo는 모든 음식의 스코빌 지수를 K 이상으로 만들고 싶습니다. 모든 음식의 스코빌 지수를 K 이상으로 만들기 위해 Leo는 스코빌 지수가 가장 낮은 두 개의 음식을 아래와 같��

programmers.co.kr


2) 풀이 과정

* 시간 복잡도 : O(n log n)

 

매운 음식의 스코빌 지수라는 특정 지수가 주어질 때, 주어지는 모든 음식의 스코빌 지수를 K 이상으로 만드는 문제입니다.

 

저의 경우, 우선순위 큐를 적용하였고, Python을 사용했습니다.

스코빌 지수가 담긴 배열에 최소힙 기반의 우선순위 큐를 적용하여 스코빌 지수가 가장 작은 두 음식이 K 미만일 경우 문제에서 제시한 방법으로 섞은 뒤, 다시 우선순위 큐에 저장하고 꺼내는 것을 반복하여 문제를 해결했습니다.


3) 코드

 

* Python 코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
import heapq
 
 
def solution(scoville, K):
    answer = 0
    heapq.heapify(scoville)
 
    while 1:
        if len(scoville) == 1:
            if scoville[0] >= K:
                return answer
            return -1
 
        spicy1 = heapq.heappop(scoville)
        spicy2 = heapq.heappop(scoville)
 
        if spicy1 < K or spicy2 < K:
            newSpicy = spicy1 + (spicy2 * 2)
            heapq.heappush(scoville, newSpicy)
            answer += 1
        else:
            return answer

 

저작자표시 비영리 변경금지 (새창열림)

'Deprecated' 카테고리의 다른 글

[programmers] 프로그래머스 조이스틱(Python)  (0) 2020.06.19
[programmers] 프로그래머스 가장 큰 수(Python)  (0) 2020.06.19
[Baekjoon Online Judge] 백준 3665번 최종 순위(Python)  (0) 2020.06.17
[Baekjoon Online Judge] 백준 1766번 문제집(Python)  (0) 2020.06.17
[programmers] 프로그래머스 큰 수 만들기(Python)  (0) 2020.06.17
    'Deprecated' 카테고리의 다른 글
    • [programmers] 프로그래머스 조이스틱(Python)
    • [programmers] 프로그래머스 가장 큰 수(Python)
    • [Baekjoon Online Judge] 백준 3665번 최종 순위(Python)
    • [Baekjoon Online Judge] 백준 1766번 문제집(Python)
    HelloMinchan
    HelloMinchan
    Though you should not fear failure, You should do your very best to avoid it.

    티스토리툴바