Hiya_
๊ฐœ๋ฐœ์ž์ทจ๐ŸŒฑ
Hiya_
Github
์ „์ฒด ๋ฐฉ๋ฌธ์ž
์˜ค๋Š˜
์–ด์ œ
  • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (155) N
    • ๐Ÿ’ปBackend (1) N
      • ๋ผ์ด์ง•์บ ํ”„ (6)
      • SSAFY | ์‹ธํ”ผ (2)
      • ์‹ ํ•œDS ๊ธˆ์œตSW ์•„์นด๋ฐ๋ฏธ (2)
    • ๐Ÿ“๋ฌธ์ œ ํ’€์ด (102)
      • ๐ŸงฉBaekjoon (47)
      • ๐ŸงฉProgrammers (42)
      • ๐ŸงฉSWExpertAcademy (10)
      • ๐ŸงฉSofteer (3)
    • ๐Ÿ“‚Language (31)
      • Python (3)
      • JAVA (2)
      • SQL (6)
      • English (19)
    • โœจUseful information (5)
    • ๐Ÿ”‘Algorithms (3)
    • ๐Ÿ™Git (2)

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

  • ํ™ˆ
  • ํƒœ๊ทธ
  • ๋ฐฉ๋ช…๋ก

๊ณต์ง€์‚ฌํ•ญ

์ธ๊ธฐ ๊ธ€

ํƒœ๊ทธ

  • ์ •๋ ฌ
  • ๋ฆฌ์ŠคํŠธ
  • ์™„์ „ํƒ์ƒ‰
  • ์ฝ”ํ…Œ
  • ํ† ์ต๊ณต๋ถ€
  • ํ† ์ต๊ธฐ์ถœ
  • ํ•ด์ปค์Šคํ† ์ต
  • ํ† ์ต์‹œํ—˜
  • ๋‹ค์ต์ŠคํŠธ๋ผ
  • ๋ฐฑ์ค€
  • greedy algorithm
  • UNION ALL
  • ๊ตฌํ˜„
  • ๋‚ด์žฅํ•จ์ˆ˜
  • sort
  • ํ† ์ต๋…ํ•™
  • Python
  • Union
  • ํ† ์ตRC
  • 2์ฐจ์› ๋ฐฐ์—ด
  • ํ•ด์ปค์ŠคํŒŒ๋žญ์ด
  • ํ† ์ต๋ฌด๋ฃŒ์ž๋ฃŒ
  • ํ† ์ต๋ฌด๋ฃŒ๊ฐ•์˜
  • ํ† ์ต์ ์ˆ˜
  • ํ‹ฐ์Šคํ† ๋ฆฌ์ฑŒ๋ฆฐ์ง€
  • BaekJoon
  • BFS
  • ์˜ค๋ธ”์™„
  • mysql
  • ๊ทธ๋ฆฌ๋””

์ตœ๊ทผ ๋Œ“๊ธ€

์ตœ๊ทผ ๊ธ€

ํ‹ฐ์Šคํ† ๋ฆฌ


Owner : ๊น€์‹ ์˜
Naver Blog

hELLO ยท Designed By ์ •์ƒ์šฐ.
Hiya_

๊ฐœ๋ฐœ์ž์ทจ๐ŸŒฑ

๐Ÿ“๋ฌธ์ œ ํ’€์ด/๐ŸงฉProgrammers

[Python] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ๋ฌด์ง€์˜ ๋จน๋ฐฉ ๋ผ์ด๋ธŒ | Heap(ํž™) | 2019 KAKAO BLIND RECRUITMENT

2023. 5. 20. 12:57

 

~๋ชฉ์ฐจ~

๋ฌธ์ œ

๋ฌธ์ œ ํ•ด๊ฒฐ ํฌ์ธํŠธ

์ž‘์„ฑ ์ฝ”๋“œ


 

๋ฌธ์ œ

https://school.programmers.co.kr/learn/courses/30/lessons/42891

 

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

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

programmers.co.kr

 

 

๋ฌธ์ œ ํ•ด๊ฒฐ ํฌ์ธํŠธ

- ๊ฐ€์žฅ ์ž‘์€ ์‹œ๊ฐ„์ด ๊ฑธ๋ฆฌ๋Š” ์Œ์‹ ๋ถ€ํ„ฐ ์ฒ˜๋ฆฌํ•œ๋‹ค. (heapq ์‚ฌ์šฉ)

- ๋งŒ์•ฝ ๋ชจ๋“  ์Œ์‹์˜ ๊ฐœ์ˆ˜ ๋ณด๋‹ค k๊ฐ€ ํฌ๋‹ค๋ฉด ๋ชจ๋“  ์Œ์‹์„ ๋จน๊ณ ๋„ ์‹œ๊ฐ„์ด ๋‚จ๋Š” ๊ฒƒ์ด๋ฏ€๋กœ -1 ๋ฐ˜ํ™˜

- ํ•œ๋ฒˆ์˜ ๋กœํ…Œ์ด์…˜์„ ์œ„ํ•ด ํ•„์š”ํ•œ ์Œ์‹ ๊ฐœ์ˆ˜๋Š”, 0์ด ์•„๋‹Œ ์Œ์‹์˜ ์ˆ˜์ด๋‹ค.(length)

- (๋‹ค์Œ ์ตœ์†Œ ์Œ์‹ ๊ฐœ์ˆ˜) - (์ด์ „์— ์ฒ˜๋ฆฌํ•œ ์Œ์‹ ๊ฐœ์ˆ˜) = ํ˜„์žฌ ์ฒ˜๋ฆฌํ•ด์•ผํ•  ์Œ์‹์˜ ์ตœ์†Œ ๊ฐœ์ˆ˜

 

- ๋งŒ์•ฝ 'k - (์ตœ์†Œ ์Œ์‹ ๊ฐœ์ˆ˜)*(๋กœํ…Œ์ด์…˜) < 0' ์ด๋ผ๋ฉด ๋ฐ˜๋ณต๋ฌธ์„ ์ข…๋ฃŒํ•œ๋‹ค.

- ๋‚จ์€ ์Œ์‹๋“ค์˜ ์ˆœ์„œ๋ฅผ ์Œ์‹ ํฌ๊ธฐ๊ฐ€ ์•„๋‹Œ ๋ฒˆํ˜ธ๋Œ€๋กœ ๋‹ค์‹œ ์ •๋ ฌ ํ›„ 

   ๋‚จ์€ k๋ฒˆ์˜ ํšŸ์ˆ˜์— ๋Œ€ํ•ด์„œ ๋ช‡๋ฒˆ์˜ ๋กœํ…Œ์ด์…˜์„ ๋Œ ์ˆ˜ ์žˆ๋Š”์ง€(k % length) ๊ตฌํ•˜์—ฌ ์ตœ์ข… ์œ„์น˜๋ฅผ ์ฐพ๋Š”๋‹ค.

 

 

์ž‘์„ฑ ์ฝ”๋“œ

 

import heapq


def solution(food_times, k):
    if sum(food_times) <= k:
        return -1


    length = len(food_times)  # ํ•œ ๋ฒˆ์˜ ๋กœํ…Œ์ด์…˜์„ ์œ„ํ•ด ๋‚จ์€ ์Œ์‹ ๊ฐœ์ˆ˜
    previous = 0  # ์ด์ „ ์ฒ˜๋ฆฌ ์Œ์‹

    que = []
    for i, time in enumerate(food_times):  # (์‹œ๊ฐ„, ๋ฒˆํ˜ธ) ํž™ ์‚ฝ์ž…
        heapq.heappush(que, (time, i + 1))

    while k - (que[0][0] - previous) * length >= 0:
        time, now = heapq.heappop(que)  # ์ฒ˜๋ฆฌํ•  ๊ฐ€์žฅ ์ž‘์€ ์Œ์‹
        k -= (time - previous) * length
        previous = time
        length -= 1  # ํ•œ ๋ฒˆ์˜ ๋กœํ…Œ์ด์…˜ ์ฒ˜๋ฆฌ

    que.sort(key=lambda x: x[1])  # ์Œ์‹ ๋ฒˆํ˜ธ๋กœ ์žฌ์ •๋ ฌ
    return que[k % length][1]  # ๋‚จ์€ ์Œ์‹ ์ˆ˜์— ๋Œ€ํ•œ ๋กœํ…Œ์ด์…˜ ํ›„ ์ตœ์ข… ์œ„์น˜

 

 

 

๋„์›€์ด ๋˜์…จ๋‹ค๋ฉด ์ข‹์•„์š” ๋ˆŒ๋Ÿฌ์ฃผ์„ธ์š”๐Ÿ’š

 


REFERENCE

https://mjmjmj98.tistory.com/149

https://www.youtube.com/watch?v=zpz8SMzwiHM 

'๐Ÿ“๋ฌธ์ œ ํ’€์ด > ๐ŸงฉProgrammers' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[Python] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ˆœ์œ„ | ํ”Œ๋กœ์ด๋“œ-์›Œ์…œ ์•Œ๊ณ ๋ฆฌ์ฆ˜  (0) 2023.05.25
[Python] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ๋ฌธ์ž์—ด ์••์ถ• | 2020 KAKAO BLIND RECRUITMENT  (0) 2023.05.20
[Python] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ๊ฐ€์žฅ ๋จผ ๋…ธ๋“œ | BFS | ๋‹ค์ต์ŠคํŠธ๋ผ  (0) 2023.05.16
[Python] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค N์œผ๋กœ ํ‘œํ˜„ | DP  (0) 2023.05.15
[JAVA] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์‹ ๊ณ  ๊ฒฐ๊ณผ ๋ฐ›๊ธฐ | HashMap | HashSet  (0) 2023.05.06
    '๐Ÿ“๋ฌธ์ œ ํ’€์ด/๐ŸงฉProgrammers' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
    • [Python] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ˆœ์œ„ | ํ”Œ๋กœ์ด๋“œ-์›Œ์…œ ์•Œ๊ณ ๋ฆฌ์ฆ˜
    • [Python] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ๋ฌธ์ž์—ด ์••์ถ• | 2020 KAKAO BLIND RECRUITMENT
    • [Python] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ๊ฐ€์žฅ ๋จผ ๋…ธ๋“œ | BFS | ๋‹ค์ต์ŠคํŠธ๋ผ
    • [Python] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค N์œผ๋กœ ํ‘œํ˜„ | DP
    Hiya_
    Hiya_
    ํ•˜์–€ ์ฒœ๊ณผ ๋ฐ”๋žŒ๋งŒ ์žˆ๋‹ค๋ฉด ์–ด๋””๋“  ๊ฐˆ ์ˆ˜ ์žˆ์–ด

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