์šฐ๊ทœ์ด์ธ์šฐ์œค
Eager To Learn ๐ŸŒŒ
์šฐ๊ทœ์ด์ธ์šฐ์œค
์ „์ฒด ๋ฐฉ๋ฌธ์ž
์˜ค๋Š˜
์–ด์ œ

๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

  • ๐Ÿก ํ™ˆ
  • ๐Ÿš€ ๊นƒํ—ˆ๋ธŒ
  • โ›… ํƒœ๊ทธ ํด๋ผ์šฐ๋“œ
  • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (217)
    • ๐Ÿ‘จ๐Ÿปโ€๐Ÿ’ป PS (170)
      • JAVA (82)
      • MYSQL (1)
      • Docker (2)
      • PYTHON (24)
      • LeetCode 150 (39)
      • Algorithm ๊ธฐ๋ฒ• (1)
      • ๋ฐ”ํ‚น๋… (21)
    • ๋ธ”๋กœ๊ทธ ์ด์‚ฌ (0)
    • Error (1)
    • CS (15)
      • DataBase (2)
      • OS (7)
      • Network (1)
      • Spring (1)
      • ์ž๋ฃŒ๊ตฌ์กฐ (3)
      • Java (1)
    • Learned (7)
      • Spring (7)
    • ๊ฐœ๋ฐœ์„œ์  (15)
      • ๊ฐ€์ƒ ๋ฉด์ ‘ ์‚ฌ๋ก€๋กœ ๋ฐฐ์šฐ๋Š” ๋Œ€๊ทœ๋ชจ ์‹œ์Šคํ…œ ์„ค๊ณ„ ๊ธฐ์ดˆ (1)
      • ์˜ค๋ธŒ์ ํŠธ - ์กฐ์˜ํ˜ธ (7)
      • ์นœ์ ˆํ•œ SQL ํŠœ๋‹ (7)
    • ํšŒ๊ณ  (2)
hELLO ยท Designed By ์ •์ƒ์šฐ.
์šฐ๊ทœ์ด์ธ์šฐ์œค
๐Ÿ‘จ๐Ÿปโ€๐Ÿ’ป PS/PYTHON

[ํŒŒ์ด์ฌ PYTHON] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šคใ€๋ฌด์ง€์˜ ๋จน๋ฐฉ ๋ผ์ด๋ธŒใ€‘

๐Ÿ‘จ๐Ÿปโ€๐Ÿ’ป PS/PYTHON

[ํŒŒ์ด์ฌ PYTHON] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šคใ€๋ฌด์ง€์˜ ๋จน๋ฐฉ ๋ผ์ด๋ธŒใ€‘

2023. 3. 17. 10:57
 

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค

์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”.

programmers.co.kr

 

ํ™•์‹คํžˆ, ์นด์นด์˜ค ์ฝ”ํ…Œ ๊ธฐ์ถœ๋ฌธ์ œ๋ผ ๊ทธ๋Ÿฐ์ง€ ์–ด๋ ค์› ๋‹ค.

 

์ •ํ™•์„ฑ ํ…Œ์ŠคํŠธ๋Š”, ์‰ฝ๊ฒŒ ํ’€ ์ˆ˜ ์žˆ์—ˆ๋Š”๋ฐ ํšจ์œจ์„ฑ ํ…Œ์ŠคํŠธ์—์„œ ์ ์ˆ˜ ๋ฐ›๋Š”๊ฒŒ ๋งค์šฐ ํž˜๋“ค์—ˆ๊ณ  ๊ฒฐ๊ตญ ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค์˜ ํ’€์ด๋ฅผ ์ฐธ๊ณ ํ–ˆ๋‹ค..ใ…Ž

 

import heapq

def solution(food_times, k): 
    answer = -1
    
    # ์Œ์‹ ์ดํ•ฉ ๋ณด๋‹ค k๊ฐ€ ํฌ๋ฉด ์„ญ์ทจํ•  ์Œ์‹์ด ์—†์–ด์ง€๋ฏ€๋กœ -1 ๋ฐ˜ํ™˜
    if sum(food_times) <=k:
        return -1
    
    foods = []
    # ์šฐ์„ ์ˆœ์œ„ ํ์— [์Œ์‹์–‘,์Œ์‹๋ฒˆํ˜ธ] ์ž…๋ ฅ, ์Œ์‹์–‘์„ ๊ธฐ์ค€์œผ๋กœ ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌ์ด ๋˜์–ด์žˆ์„ ๊ฒƒ
    for i in range(len(food_times)):
        heapq.heappush(foods,[food_times[i],i+1])
    
    eat = 0
    
    while foods:
        #์Œ์‹์„ ๋‹ค ๋จน๋Š”๋ฐ ๊ฑธ๋ฆฌ๋Š” ์‹œ๊ฐ„ (์ตœ์†Œ๋ถ€ํ„ฐ)
        time = (foods[0][0]-eat)*len(foods)
        
        if time <= k:
            food, idx = heapq.heappop(foods)
            k-=time
            eat = food
        else:
            idx = k%len(foods)
            foods.sort(key=lambda x : x[1])
            return foods[idx][1]
    
    return answer

์ฝ”๋“œ๋Š” ์œ„์™€ ๊ฐ™๋‹ค.

 

์‚ฌ์‹ค์ƒ while ๋ฌธ ๋“ค์–ด๊ฐ€๊ธฐ ์ „๊ฐ€์ง€๋Š”, ์šฐ์„ ์ˆœ์œ„ ํ์— [์Œ์‹์–‘, ์Œ์‹๋ฒˆํ˜ธ]๋ฅผ ๋„ฃ๋Š” ๊ณผ์ •์ด๊ณ  while ๋ฌธ ๋ถ€ํ„ฐ๊ฐ€ ์ดํ•ด๊ฐ€ ์ข€ ํ•„์š”ํ–ˆ๋‹ค.

 

๋‚˜๋ฆ„ ๋‚ด๊ฐ€ ์ดํ•ดํ•œ ๋ฐฉ๋ฒ•์„ ๋ฐ”ํƒ•์œผ๋กœ ์ž˜ ์„ค๋ช…์„ ํ•ด๋ณด๊ฒ ๋‹ค..ใ…‹ใ…‹

 

์˜ˆ์ œ๋กœ ํ™•์ธํ•ด๋ณด๊ฒ ๋‹ค.


ํ˜„์žฌ 1๋ฒˆ์— ์Œ์‹์ด 3๊ฐœ, 2๋ฒˆ์— 1๊ฐœ, 3๋ฒˆ์— 1๊ฐœ๊ฐ€ ์žˆ๋Š” ์ƒํ™ฉ์ด๋‹ค.

 

๊ทธ๋ฆฌ๊ณ  ์šฐ์„ ์ˆœ์œ„ ํ์— ์Œ์‹ ์–‘์„ ๊ธฐ์ค€์œผ๋กœ ์ž…๋ ฅํ•˜๋ฉด ์˜ค๋ฅธ์ชฝ๊ณผ ๊ฐ™์ด ์ •๋ ฌ๋œ๋‹ค.

 

๊ทธ๋ฆฌ๊ณ  ๋ชจ๋“  ๋ฒˆํ˜ธ๋ฅผ ์ตœ์†Œ ์Œ์‹์–‘ ๋งŒํผ์„ ํ•œ ์‹ธ์ดํด์— ๋จน์„ ์ˆ˜ ์žˆ๋Š”์ง€ ํ™•์ธํ•œ๋‹ค.

 

์œ„ ์˜ˆ์‹œ์—์„  ์ตœ์†Œ ์Œ์‹์–‘์ด 1์ดˆ์ด๋ฏ€๋กœ ์ด 3์ดˆ๊ฐ€ ๊ฑธ๋ฆฐ๋‹ค.

 

k๊ฐ€ 4์ดˆ์ธ ๊ฒฝ์šฐ 1์ดˆ๊ฐ€ ๋‚จ๊ฒŒ ๋œ๋‹ค.

 

๊ทธ๋Ÿฌ๋ฉด ๋‹ค์Œ ์ตœ์†Œ ์–‘์ธ 3๋ฒˆ์œผ๋กœ ์œ„ ๊ณผ์ •์„ ๋˜ ํ•ด๋ณธ๋‹ค.

 

๋‹ค์Œ ์Œ์‹ ์ตœ์†Œ์–‘์€ ์ฐธ๊ณ ๋กœ 2๊ฐ€ ์•„๋‹ˆ๋ผ 1์ด๋‹ค. ์™œ๋ƒํ•˜๋ฉด ์ฒซ ์‚ฌ์ดํด์—์„œ ๋ชจ๋“  ๋ฒˆํ˜ธ์˜ ์Œ์‹์ด 1๋งŒํผ ๊ฐ์†Œํ–ˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

 

๊ทธ๋Ÿฌ๋ฏ€๋กœ ํ•œ ์‹ธ์ดํด์„ ๋Œ๊ธฐ ์œ„ํ•ด์„œ๋Š” 2์ดˆ๊ฐ€ ํ•„์š”ํ•œ๋ฐ ๋‚จ์€ k๋Š” 1์ด๋ฏ€๋กœ ํ•œ ์‹ธ์ดํด์„ ๋Œ ์ˆ˜ ์—†์–ด์ง„๋‹ค. 

 

 

 

์‹ธ์ดํด์„ ๋Œ ์ˆ˜ ์—†๋Š” ์ƒํ™ฉ์ด๋ผ๋ฉด ๋‹ค์‹œ ์Œ์‹ ๋ฒˆํ˜ธ ์ˆœ์œผ๋กœ ์ •๋ ฌ ํ›„, k๋ฅผ ์ด์šฉํ•ด์„œ ์Œ์‹ ๋ฒˆํ˜ธ๋ฅผ ์ฐพ์œผ๋ฉด ๋œ๋‹ค.

 

 

2๋ฒˆ ์Œ์‹์€ ๋‹ค ๋จน์—ˆ์œผ๋ฏ€๋กœ ๊ณ ๋ คํ•˜์ง€ ์•Š์•„๋„ ๋˜๊ณ , k๊ฐ€ 1์ด๋ฏ€๋กœ 0~1์ดˆ๋™์•ˆ 1๋ฒˆ์„ ๋จน๊ณ  ๋ฐฉ์†ก์ด ์ค‘๋‹จ๋˜๋ฏ€๋กœ 

 

๋ฐฉ์†ก์ด ์žฌ๊ฐœ๋˜์—ˆ์„๋•Œ ๋จน์„ ์Œ์‹์€ 3๋ฒˆ์ด ๋œ๋‹ค.

 

์ฆ‰, k๊ฐ€ ์ตœ์†Œ ์Œ์‹์–‘์œผ๋กœ ํ•œ์‚ฌ์ดํด์„ ๋Œ ์ˆ˜ ์—†์„ ๋•Œ, foods[k][1] ์ด ๋‹ต์ด ๋œ๋‹ค.


 

์œ„์™€ ๊ฐ™์€ ๊ฒฝ์šฐ๋Š” k=2 ์—์„œ ๋‹ค์Œ ์Œ์‹ ์ตœ์†Ÿ๊ฐ’์ด 2์ดˆ์ธ๋ฐ ํ•œ์‚ฌ์ดํด์„ ๋„๋Š”๋ฐ 4์ดˆ๊ฐ€ ๊ฑธ๋ฆฌ๋ฏ€๋กœ ์‹ธ์ดํด์„ ๋Œ ์ˆ˜ ์—†์–ด์ง„๋‹ค.

 

์ด ์ƒํ™ฉ์—์„œ ๋‹ค์‹œ ์Œ์‹ ๋ฒˆํ˜ธ์ˆœ์œผ๋กœ ์ •๋ ฌํ•œ ๋’ค, ์ค‘๋‹จ ๋’ค ๋จน์„ ์Œ์‹ ๋ฒˆํ˜ธ๋ฅผ ๊ตฌํ•ด์•ผํ•œ๋‹ค.

 

foods[k][1] ๋กœ ๊ตฌํ•˜๊ฒŒ ๋˜๋ฉด ์ธ๋ฑ์Šค ๋ฒ”์œ„ ์˜ค๋ฅ˜๊ฐ€ ์ƒ๊ธธ ์ˆ˜ ์žˆ๋‹ค.

 

๋”ฐ๋ผ์„œ foods[k%len(foods)][1] ๋กœ ๊ตฌํ•ด์•ผํ•œ๋‹ค. (foods๋Š” ๋‹ค ๋จน์€ ์Œ์‹์€ ํฌํ•จ๋˜์ง€ ์•Š์Œ)

 

๋”ฐ๋ผ์„œ foods[0][1]์ด ๋˜๊ณ  ๋จน์„ ์Œ์‹์€ 1๋ฒˆ์ด ๋œ๋‹ค.

    '๐Ÿ‘จ๐Ÿปโ€๐Ÿ’ป PS/PYTHON' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
    • [ํŒŒ์ด์ฌ PYTHON ยท ์ž๋ฐ” JAVA] LeetCodeใ€3Sumใ€‘
    • [ํŒŒ์ด์ฌ PYTHON ยท ์ž๋ฐ” JAVA] LeetCodeใ€Search in Rotated Sorted Arrayใ€‘
    • [ํŒŒ์ด์ฌ PYTHON ยท ์ž๋ฐ” Java] LeetCodeใ€Find Minimum in Rotated Sorted Arrayใ€‘
    • [ํŒŒ์ด์ฌ PYTHON ยท ์ž๋ฐ” JAVA] LeetCodeใ€Maximum Product Subarrayใ€‘
    ์šฐ๊ทœ์ด์ธ์šฐ์œค
    ์šฐ๊ทœ์ด์ธ์šฐ์œค
    ๊ฐœ๋ฐœ์ž ๊ฟˆ๋‚˜๋ฌด

    ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”

    ๋‹จ์ถ•ํ‚ค

    ๋‚ด ๋ธ”๋กœ๊ทธ

    ๋‚ด ๋ธ”๋กœ๊ทธ - ๊ด€๋ฆฌ์ž ํ™ˆ ์ „ํ™˜
    Q
    Q
    ์ƒˆ ๊ธ€ ์“ฐ๊ธฐ
    W
    W

    ๋ธ”๋กœ๊ทธ ๊ฒŒ์‹œ๊ธ€

    ๊ธ€ ์ˆ˜์ • (๊ถŒํ•œ ์žˆ๋Š” ๊ฒฝ์šฐ)
    E
    E
    ๋Œ“๊ธ€ ์˜์—ญ์œผ๋กœ ์ด๋™
    C
    C

    ๋ชจ๋“  ์˜์—ญ

    ์ด ํŽ˜์ด์ง€์˜ URL ๋ณต์‚ฌ
    S
    S
    ๋งจ ์œ„๋กœ ์ด๋™
    T
    T
    ํ‹ฐ์Šคํ† ๋ฆฌ ํ™ˆ ์ด๋™
    H
    H
    ๋‹จ์ถ•ํ‚ค ์•ˆ๋‚ด
    Shift + /
    โ‡ง + /

    * ๋‹จ์ถ•ํ‚ค๋Š” ํ•œ๊ธ€/์˜๋ฌธ ๋Œ€์†Œ๋ฌธ์ž๋กœ ์ด์šฉ ๊ฐ€๋Šฅํ•˜๋ฉฐ, ํ‹ฐ์Šคํ† ๋ฆฌ ๊ธฐ๋ณธ ๋„๋ฉ”์ธ์—์„œ๋งŒ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค.