Programmers : ๊ธฐ๋Šฅ๊ฐœ๋ฐœ

์ตœ๋Œ€ 1 ๋ถ„ ์†Œ์š”

๐Ÿ”’ Programmers : ๊ธฐ๋Šฅ๊ฐœ๋ฐœ

progresses ๋ฆฌ์ŠคํŠธ๋ฅผ ์•ž์—์„œ๋ถ€ํ„ฐ ์ˆœํšŒํ•˜๋ฉด ๋˜๋Š” ๋ฌธ์ œ์ด๋‹ค.

์ง„๋„์œจ์ด 100์ด๋ฉด ๋์ด๋ฏ€๋กœ, progresses์˜ ์›์†Œ๋ฅผ ํ•˜๋‚˜์”ฉ ๋ณผ ๋•Œ๋งˆ๋‹ค 100์—์„œ ๋บ€ ๊ฐ’์„ ๊ทธ ์ž‘์—…์˜ ์ง„ํ–‰์†๋„๋กœ ๋‚˜๋ˆ„๋ฉด ๋ฉฐ์น (days)์„ ์ž‘์—…ํ•˜๋Š” ์ง€ ์•Œ ์ˆ˜ ์žˆ๋‹ค.

์ž‘์—…์ผ ๋งŒํผ ๋’ค์˜ ๊ฐ’๋“ค๋„ ์›๋ž˜ ๊ฐ’(progresses[i]) + speeds[i]*days ํ•ด์ค€๋‹ค.

์ด ์ž‘์—…์„ ๋ฆฌ์ŠคํŠธ์˜ ์›์†Œ ์ˆ˜ ๋งŒํผ ๋ฐ˜๋ณตํ•˜๋ฉด ๋์ด๋‹ค.

๐Ÿ”‘ ์ฝ”๋“œ

from math import ceil
from collections import deque
def solution(progresses, speeds):
    answer = []
    progresses = deque(progresses)
    speeds = deque(speeds)
    cnt = 1

    while progresses:
        p = progresses.popleft()
        s = speeds.popleft()
        if p >= 100:
            cnt += 1
        else:
            answer.append(cnt)
            cnt = 1
            n = ceil((100-p)/s)
            for i in range(len(speeds)):
                progresses[i] += speeds[i]*n
    answer.append(cnt)

    return answer[1:]

์ž‘์—…์˜ ํ†ต์ผ์„ฑ์„ ์ฃผ๊ธฐ ์œ„ํ•ด ์ฒ˜์Œ ํ™•์ธํ•  ๋•Œ๋„ answer์— ๊ฐ’์„ ๋„ฃ์–ด์ฃผ์—ˆ๊ณ , answer์„ returnํ•  ๋•Œ๋Š” ์ธ๋ฑ์Šค๋ฅผ 1๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜์—ฌ ๋ฐ˜ํ™˜ํ–ˆ๋‹ค.

์นดํ…Œ๊ณ ๋ฆฌ:

์—…๋ฐ์ดํŠธ:

๋Œ“๊ธ€๋‚จ๊ธฐ๊ธฐ