2021๋ 01์ 13์ผ ์์์ผ 20:00~23:00
๐ฅ programmers 2๋จ๊ณ ๋ฌธ์ ํด๊ฒฐ ๋ชฉ๋ก ๐ฅ
- ๋ ๋งต๊ฒ
- ํ(Heap)
- ์ ๋ฒ์ ํจ์จ์ฑ ์คํจ๋ก ์ธํ์ฌ ๋ค์ ๋์ ํ ๊ฒฐ๊ณผ ํจ์จ์ฑ ํต๊ณผ๋ฅผ ํ์ง ๋ชปํจ
- ์ฐพ์๋ณธ ๊ฒฐ๊ณผ heapq๋ฅผ ์ฌ์ฉํ์ฌ ํด๊ฒฐํ๋ฉด ํจ์จ์ฑ์ ํต๊ณผํ ์ ์๋ค๊ณ ํจ - ํ๋ ฌ์ ๊ณฑ์
- ๋ฌธ์ ์ ๋ด์ฉ์ ์ดํดํ์ผ๋ ์ฝ๋๋ฅผ ๊ตฌํํ๋๋ฐ ํผ๋์ด ์์ ํด๊ฒฐ ์ค...
- ๋ค์์ ๊ผญ ์ฑ๊ณตํ๊ธฐ๋ฅผ..
๋ ๋งต๊ฒ
๋ฌธ์ ํ์ด
def solution(scoville, K):
answer = 0
scoville.sort() #์ ๋ ฌ
while scoville[0]<K:
if(len(scoville)==1): #๊ธธ์ด๊ฐ 1์ด๋ฉด K์ด์์ผ๋ก ๋ง๋ค๊ธฐ ๋ถ๊ฐ
answer=-1
break
temp=scoville.pop(0) #๊ฐ์ฅ ๋งต์ง ์์ ์์์ ์ค์ฝ๋น ์ง์
temp2=scoville.pop(0) # ๋ ๋ฒ์งธ๋ก ๋งต์ง ์์ ์์์ ์ค์ฝ๋น ์ง์
scoville.append(temp+(temp2*2))
scoville.sort() #์ ๋ ฌ
answer+=1 #์์ด์ผ ํ๋ ํ์ +1
return answer
์ฒ์ while๋ฌธ๊ณผ list๋ก ํด๊ฒฐํ ๊ฒฐ๊ณผ ์ ํ์ฑ ํ
์คํธ๋ ๋ค ํต๊ณผํ์์ง๋ง ํจ์จ์ฑ์ ๋ค ์๊ฐ ์ด๊ณผ๋ก ์ฑ๊ณตํ์ง ๋ชปํ์๋ค.
sort๋ฅผ ์ฌ์ฉํ ๊ฒ๋ณด๋ค heapq๋ฅผ ์ฌ์ฉํ๋ฉด ๋ ํจ์จ์ ์ด๋ผ๋ ๊ฒ์ ๊ฒ์์ ํตํด ์๊ฒ ๋์๋ค.
์ ํ์ฑ: 76.2
ํจ์จ์ฑ: 0.0
import heapq
def solution(scoville, K):
answer = 0
heapq.heapify(scoville) #๊ธฐ์กด list๋ฅผ ํ์ผ๋ก ๋ณํ
while scoville[0]<K: #K๋ณด๋ค ์์๋๋ง ๋ฐ๋ณต
if len(scoville)==1: #๊ธธ์ด๊ฐ 1์ด๋ฉด ๋์ด์ ๋ง๋ค ์ ์์
answer=-1
break
temp=heapq.heappop(scoville)
temp2=heapq.heappop(scoville)
heapq.heappush(scoville, temp+temp2*2)
answer+=1
return answer
์์ ์ฝ๋๋ฅผ heapq๋ฅผ ์ฌ์ฉํ์ฌ ๊ณ ์น ํ ๊ฒฐ๊ณผ๋ฅผ ํ์ธํด๋ณด๋ ์ ํ์ฑ ๋ฐ ํจ์จ์ฑ์ ๋ค ํต๊ณผํ๋ ๊ฒ์ ํ์ธํ ์ ์์๋ค.
1) heapq๋ฅผ ์ฌ์ฉํ์ฌ ๊ธฐ์กด list๋ฅผ ํ์ผ๋ก ๋ณํ
2) scoville์ ์ฒซ ๋ฒ์งธ ๊ฐ์ด K๋ณด๋ค ์์ ๋ ๋ฐ๋ณต
2-1) scoville์ ๊ธธ์ด๊ฐ 1์ด๋ฉด ๋ ์ด์ ๋ง๋ค ์ ์์ผ๋ฏ๋ก answer๋ฅผ -1๋ก ๋ฐ๊พธ๊ณ ์ค์ง
2-2) heapq.heappop์ ์ฌ์ฉํ์ฌ scoville์์ ๊ฐ ๋ ๊ฐ ๊ฐ์ ธ์ค๊ธฐ
2-3) x+y*2๋ฅผ ๊ณ์ฐํ ํ scoville์ ์ถ๊ฐ
2-4) answer +1
'๐ฉโ๐ปStudy Group > ๐ซง2020-2021 ๋๊ณ ๋ชจ๊ฐ์ฝ_์ํํฌ์ผ์ํธ๋ก' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
01์ 13์ผ ๋ชจ๊ฐ์ฝ_์ํฌํธ 6ํ์ฐจ ๊ณํ (0) | 2021.01.13 |
---|---|
01์ 11์ผ ๋ชจ๊ฐ์ฝ_์ํฌํธ 5ํ์ฐจ ๊ฒฐ๊ณผ ๋ณด๊ณ ์ (0) | 2021.01.11 |
01์ 11์ผ ๋ชจ๊ฐ์ฝ_์ํฌํธ 5ํ์ฐจ ๊ณํ (0) | 2021.01.11 |
01์ 6์ผ ๋ชจ๊ฐ์ฝ_์ํฌํธ 4ํ์ฐจ ๊ฒฐ๊ณผ ๋ณด๊ณ ์ (0) | 2021.01.06 |
01์ 6์ผ ๋ชจ๊ฐ์ฝ_์ํฌํธ 4ํ์ฐจ ๊ณํ (0) | 2021.01.06 |