๐Ÿ‘ฉ‍๐Ÿ’ปStudy Group/๐Ÿซง2020-2021 ๋™๊ณ„ ๋ชจ๊ฐ์ฝ”_์™€ํ”ŒํŒฌ์ผ€์žŒํ˜ธ๋–ก

01์›” 13์ผ ๋ชจ๊ฐ์ฝ”_์™€ํŒฌํ˜ธ 6ํšŒ์ฐจ ๊ฒฐ๊ณผ ๋ณด๊ณ ์„œ

๋ฟŒ์•ผ._. 2021. 1. 13. 22:56

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