티스토리 뷰
반응형
참고 : https://programmers.co.kr/learn/courses/30/lessions/12927
이 문제를 풀고나서 다른 사람들과 풀이방식이 조금 다르기에 이렇게 올려본다.
처음에 이 문제를 보았을 때 최댓값을 계속 뽑아내서 -1을 해주면 되겠구나라고 생각을 해서 바로 최대 힙을 생각했다.
파이썬에서는 최대힙을 구현하는 방법은 다들 아시겠지만 원래 숫자에 -1을 곱하면 그렇게 구현할 수 있다.
그래서 다음과 같이 구현하였다.
import heapq
from functools import reduce
def solution(n, works):
if n>=sum(works):
return 0
heap = []
for v in works:
heapq.heappush(heap, -v)
while n:
x = heapq.heappop(heap)
x +=1
heapq.heappush(heap,x)
n-=1
heap = map(lambda x: x**2, heap)
answer = reduce(lambda x,y : x + y, heap)
return answer
반응형
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] [카카오] [자바] 오픈채팅방 (0) | 2021.12.07 |
---|---|
[프로그래머스] [자바] [카카오] 문자열 압축 (0) | 2021.12.06 |
2020 카카오 인턴십 수식 최대화 (0) | 2021.02.08 |
2017 카카오코드 본선 단체사진 찍기 (0) | 2021.02.05 |
2019 카카오 개발자 겨울 인턴십 튜플 (0) | 2021.02.05 |
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- thread
- ubuntu
- setattr
- Python
- docker-compose
- 2021 KAKAO BLIND RECRUITMENT
- 그래프
- 알고리즘
- Celery
- Java
- 자바
- headers
- DRF
- 파이썬
- 면접
- postgres
- env
- BFS
- 백준
- Spring
- 카카오
- PostgreSQL
- Command Line
- dockerignore
- 프로그래머스
- Collections
- Pattern
- Linux
- django
- docker
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
글 보관함