2021. 1. 8. 18:20ใ๐ Algorithm/๐ช๐ป Python ๋ฌธ์ ํ์ด
๋ฌธ์ ์ค๋ช
ํ๋ก๊ทธ๋๋จธ์ค ํ์์๋ ๊ธฐ๋ฅ ๊ฐ์ ์์ ์ ์ํ ์ค์ ๋๋ค. ๊ฐ ๊ธฐ๋ฅ์ ์ง๋๊ฐ 100%์ผ ๋ ์๋น์ค์ ๋ฐ์ํ ์ ์์ต๋๋ค.
๋, ๊ฐ ๊ธฐ๋ฅ์ ๊ฐ๋ฐ์๋๋ ๋ชจ๋ ๋ค๋ฅด๊ธฐ ๋๋ฌธ์ ๋ค์ ์๋ ๊ธฐ๋ฅ์ด ์์ ์๋ ๊ธฐ๋ฅ๋ณด๋ค ๋จผ์ ๊ฐ๋ฐ๋ ์ ์๊ณ , ์ด๋ ๋ค์ ์๋ ๊ธฐ๋ฅ์ ์์ ์๋ ๊ธฐ๋ฅ์ด ๋ฐฐํฌ๋ ๋ ํจ๊ป ๋ฐฐํฌ๋ฉ๋๋ค.
๋จผ์ ๋ฐฐํฌ๋์ด์ผ ํ๋ ์์๋๋ก ์์ ์ ์ง๋๊ฐ ์ ํ ์ ์ ๋ฐฐ์ด progresses์ ๊ฐ ์์ ์ ๊ฐ๋ฐ ์๋๊ฐ ์ ํ ์ ์ ๋ฐฐ์ด speeds๊ฐ ์ฃผ์ด์ง ๋ ๊ฐ ๋ฐฐํฌ๋ง๋ค ๋ช ๊ฐ์ ๊ธฐ๋ฅ์ด ๋ฐฐํฌ๋๋์ง๋ฅผ return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํ์ธ์.
์ ํ ์ฌํญ
- ์์ ์ ๊ฐ์(progresses, speeds๋ฐฐ์ด์ ๊ธธ์ด)๋ 100๊ฐ ์ดํ์ ๋๋ค.
- ์์ ์ง๋๋ 100 ๋ฏธ๋ง์ ์์ฐ์์ ๋๋ค.
- ์์ ์๋๋ 100 ์ดํ์ ์์ฐ์์ ๋๋ค.
- ๋ฐฐํฌ๋ ํ๋ฃจ์ ํ ๋ฒ๋ง ํ ์ ์์ผ๋ฉฐ, ํ๋ฃจ์ ๋์ ์ด๋ฃจ์ด์ง๋ค๊ณ ๊ฐ์ ํฉ๋๋ค. ์๋ฅผ ๋ค์ด ์ง๋์จ์ด 95%์ธ ์์ ์ ๊ฐ๋ฐ ์๋๊ฐ ํ๋ฃจ์ 4%๋ผ๋ฉด ๋ฐฐํฌ๋ 2์ผ ๋ค์ ์ด๋ฃจ์ด์ง๋๋ค.
์ ์ถ๋ ฅ ์์
ํ์ด ๊ณผ์
์ฒ์์ ๊ฐ progress๋ฅผ ๊ตฌํํ๋๋ฐ ๊ฑธ๋ฆฌ๋ ์๊ฐ์ ๊ณ์ฐํ์ฌ queue์ ์ ์ฅํ์๋ค.
๊ทธ ๋ค์ queue์ item์ ํ๋์ฉ ๊ฒ์ฌํ๋ฉฐ ํ์ฌ item์ด ์ด์ item ๋ณด๋ค ์์ผ๋ฉด ํ์ฌ item์ ์ด์ item์ผ๋ก ๋ฐ๊พธ๊ฒ ํ๋ ์์ผ๋ก
for๋ฌธ์ ๊ตฌํํ์ฌ ํด๋น ๋ ์ง์ ๋ช๊ฐ์ ๊ธฐ๋ฅ์ด ๊ฐ๋ฐ๋๋์ง ๊ตฌํํ์๋ค. Counter ๋ชจ๋์ ์ด์ฉํ์ฌ 1, 10, 20์ ๊ฐ์๋ฅผ ์ธ์ด ๊ทธ ๊ฐ์๋ค์ answer์ ์ ์ฅํด์ฃผ๋ ๋ฐฉ์์ผ๋ก ์ฝ๋๋ฅผ ์งฐ๋ค. ํ๋ ๋ฌธ์ ์ธ ํ ์คํธ 11์์ ์๊พธ ์คํจ๊ฐ ๋ฌ์๋๋ฐ ์ง๋ฌธํ๊ธฐ๋ค์ ๋ณด๋, progress ๊ฑธ๋ฆฌ๋ ์๊ฐ์ ๊ณ์ฐํ๋๋ฐ ์ฌ๋ฆผ์ ๋ฌธ์ ๊ฐ ์์๋ค. math ๋ชจ๋์ ceil์ ํตํด ์ฝ๊ฒ ์ฌ๋ฆผ์ ๊ณ์ฐํ ์ ์์๋ค.
from collections import Counter
import math
def solution(progresses, speeds):
answer = []
queue = []
for progress, speed in zip(progresses, speeds):
queue.append(math.ceil((100 - progress) / speed))
i = 0
for j in range(1, len(queue)):
if queue[j] < queue[i]:
queue[j] = queue[i]
i += 1
count = Counter(queue).items()
for item in count:
answer.append(item[1])
return answer
print(solution( [93, 30, 55], [1, 30, 5]))
'๐ Algorithm > ๐ช๐ป Python ๋ฌธ์ ํ์ด' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Python - ํ๋ก๊ทธ๋๋จธ์ค Level2] ๋ ๋งต๊ฒ (0) | 2021.01.10 |
---|---|
[Python - ๋ฐฑ์ค 1966] ํ๋ฆฐํฐ ํ (0) | 2021.01.08 |
[Python - ํ๋ก๊ทธ๋๋จธ์ค Level2] ํ๋ฆฐํฐ (0) | 2021.01.08 |