https://school.programmers.co.kr/learn/courses/30/lessons/150368
ํ๋ก๊ทธ๋๋จธ์ค
์ฝ๋ ์ค์ฌ์ ๊ฐ๋ฐ์ ์ฑ์ฉ. ์คํ ๊ธฐ๋ฐ์ ํฌ์ง์ ๋งค์นญ. ํ๋ก๊ทธ๋๋จธ์ค์ ๊ฐ๋ฐ์ ๋ง์ถคํ ํ๋กํ์ ๋ฑ๋กํ๊ณ , ๋์ ๊ธฐ์ ๊ถํฉ์ด ์ ๋ง๋ ๊ธฐ์ ๋ค์ ๋งค์นญ ๋ฐ์ผ์ธ์.
programmers.co.kr
์์ ํ์์ ์ด์ฉํด์ ํ์๋ค.
์ค๋ณต์์ด์ ์ด์ฉํด์ ํ ์ธ ๊ฐ์ง์๋ฅผ ๋จผ์ ๊ณ์ฐํด์ฃผ๊ณ ,
๋ฐ๋ณต๋ฌธ์ ํตํด ๊ฐ๊ฐ users๋ฅผ ์ํํ๋ฉด์
๊ฐ๊ฒฉ >= ๊ตฌ๋งค์ก์ด๋ฉด ํ๋ฌ์ค ๊ฐ์ ์๋ฅผ ๋๋ฆฌ๊ณ , ๊ฐ๊ฒฉ < ๊ตฌ๋งค์ก์ด๋ฉด ํ๋งค์ก์ ๋๋ ค
์กฐ๊ฑด์ ๋ง๋ ์ต๋๊ฐ์ ๋ฆฌํดํด์ฃผ๋ฉด ๋๋ค.
# ํ๋ก๊ทธ๋๋จธ์ค 150368: ์ด๋ชจํฐ์ฝ ํ ์ธํ์ฌ (2023 KAKAO BLIND RECRUITMENT)
from itertools import product
def solution(users, emoticons):
per = [10, 20, 30, 40] # ํ ์ธ ์ผ์ด์ค
answer = [0, 0]
for i in product(per, repeat=len(emoticons)): # ์ค๋ณต์์ด
res = [0, 0]
for rate, cost in users:
total = 0 # ๊ตฌ๋งค์ก
for j in range(len(emoticons)):
if i[j] < rate: # rate๋ณด๋ค ํ ์ธ์จ์ด ํฐ ๊ฐ๊ฒฉ๋ง ๊ณ์ฐํ๋๋ก ํ๋ค.
continue
total += ((100 - i[j]) / 100) * emoticons[j]
# ๊ตฌ๋งค ๋น์ฉ์ ํฉ์ด ์ผ์ ๊ฐ๊ฒฉ ์ด์์ด ๋๋ค๋ฉด, ์ด๋ชจํฐ์ฝ ํ๋ฌ์ค ์๋น์ค์ ๊ฐ์
if total >= cost:
res[0] += 1
else:
res[1] += total
# ์กฐ๊ฑด1 -> ์กฐ๊ฑด2 ๋ฅผ ๋ง์กฑํ๋ ์ต๋๊ฐ
if answer[0] == res[0]:
answer[1] = max(answer[1], res[1])
elif answer[0] < res[0]:
answer = res
return answer