ํ๋ก๊ทธ๋๋จธ์ค 2023 KAKAO BLIND RECRUITMENT ๋ฌธ์ , ์ด๋ชจํฐ์ฝ ํ ์ธํ์ฌ.
์ด๊ฑฐ ์ผ์ฃผ์ผ ์ ๋ ๊ฑธ๋ฆฐ ๋ฏ ํ๋ค. ์๋ฌด๋ฆฌ ์ฝ์ด๋ ์ดํด๊ฐ ์๋์... ใ ใ
๊ทผ๋ฐ ์ด ํ์ ์ฝ๊ณ ๋์ ๋ฌด์ง์ฑ์ผ๋ก ํด๋ณด์. ํ๋๋...
https://school.programmers.co.kr/questions/43408
์ฃผ์ฅ๊ฐ์ ๊ฟํ์ธ๋ฐ, ๋ ๊ฐ์ ๋ฌด์ง์ฑ ์ด๋ณด์์๊ฒ๋ ์ ๋ง ๊ฟํ์ธ ๊ฒ ๊ฐ๋ค. ๋ฌธ์ ๋ฅผ ์ฝ์ผ๋ฉด์ ์ด๋ ๊ฒ ํด์ผ๋๋? ์ ๋ ๊ฒ ํด์ผ๋๋ ๊ณ ๋ฏผํ ํ์๊ฐ ์์ด ๋ค ํด๋ณด๊ณ , ์ ์ผ ์ข์ ๊ฐ๊ฒฉ์ ํ๋งคํ ๊ฑธ ๊ณ ๋ฅด๋ฉด ๋๋ ๋ฌธ์ ๋ค. ๊ทธ ์์ค์ itertools๋ ๊ณต๋ถํ์ผ๋ ์ด๋์ ์์๋ ์.
๋ฌธ์
๋ฌธ์ ์ค๋ช
์นด์นด์คํก์์๋ ์ด๋ชจํฐ์ฝ์ ๋ฌด์ ํ์ผ๋ก ์ฌ์ฉํ ์ ์๋ ์ด๋ชจํฐ์ฝ ํ๋ฌ์ค ์๋น์ค ๊ฐ์ ์ ์๋ฅผ ๋๋ฆฌ๋ ค๊ณ ํฉ๋๋ค. ์ด๋ฅผ ์ํด ์นด์นด์คํก์์๋ ์ด๋ชจํฐ์ฝ ํ ์ธ ํ์ฌ๋ฅผ ํ๋๋ฐ, ๋ชฉํ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- ์ด๋ชจํฐ์ฝ ํ๋ฌ์ค ์๋น์ค ๊ฐ์ ์๋ฅผ ์ต๋ํ ๋๋ฆฌ๋ ๊ฒ.
- ์ด๋ชจํฐ์ฝ ํ๋งค์ก์ ์ต๋ํ ๋๋ฆฌ๋ ๊ฒ.
1๋ฒ ๋ชฉํ๊ฐ ์ฐ์ ์ด๋ฉฐ, 2๋ฒ ๋ชฉํ๊ฐ ๊ทธ ๋ค์์ ๋๋ค.
์ด๋ชจํฐ์ฝ ํ ์ธ ํ์ฌ๋ ๋ค์๊ณผ ๊ฐ์ ๋ฐฉ์์ผ๋ก ์งํ๋ฉ๋๋ค.
- n๋ช ์ ์นด์นด์คํก ์ฌ์ฉ์๋ค์๊ฒ ์ด๋ชจํฐ์ฝ m๊ฐ๋ฅผ ํ ์ธํ์ฌ ํ๋งคํฉ๋๋ค.
- ์ด๋ชจํฐ์ฝ๋ง๋ค ํ ์ธ์จ์ ๋ค๋ฅผ ์ ์์ผ๋ฉฐ, ํ ์ธ์จ์ 10%, 20%, 30%, 40% ์ค ํ๋๋ก ์ค์ ๋ฉ๋๋ค.
์นด์นด์คํก ์ฌ์ฉ์๋ค์ ๋ค์๊ณผ ๊ฐ์ ๊ธฐ์ค์ ๋ฐ๋ผ ์ด๋ชจํฐ์ฝ์ ์ฌ๊ฑฐ๋, ์ด๋ชจํฐ์ฝ ํ๋ฌ์ค ์๋น์ค์ ๊ฐ์ ํฉ๋๋ค.
- ๊ฐ ์ฌ์ฉ์๋ค์ ์์ ์ ๊ธฐ์ค์ ๋ฐ๋ผ ์ผ์ ๋น์จ ์ด์ ํ ์ธํ๋ ์ด๋ชจํฐ์ฝ์ ๋ชจ๋ ๊ตฌ๋งคํฉ๋๋ค.
- ๊ฐ ์ฌ์ฉ์๋ค์ ์์ ์ ๊ธฐ์ค์ ๋ฐ๋ผ ์ด๋ชจํฐ์ฝ ๊ตฌ๋งค ๋น์ฉ์ ํฉ์ด ์ผ์ ๊ฐ๊ฒฉ ์ด์์ด ๋๋ค๋ฉด, ์ด๋ชจํฐ์ฝ ๊ตฌ๋งค๋ฅผ ๋ชจ๋ ์ทจ์ํ๊ณ ์ด๋ชจํฐ์ฝ ํ๋ฌ์ค ์๋น์ค์ ๊ฐ์ ํฉ๋๋ค.
๋ค์์ 2๋ช ์ ์นด์นด์คํก ์ฌ์ฉ์์ 2๊ฐ์ ์ด๋ชจํฐ์ฝ์ด ์์๋์ ์์์ ๋๋ค.
์ฌ์ฉ์ | ๋น์จ | ๊ฐ๊ฒฉ |
1 | 40 | 10,000 |
2 | 25 | 10,000 |
์ด๋ชจํฐ์ฝ | ๊ฐ๊ฒฉ |
1 | 7,000 |
2 | 9,000 |
1๋ฒ ์ฌ์ฉ์๋ 40%์ด์ ํ ์ธํ๋ ์ด๋ชจํฐ์ฝ์ ๋ชจ๋ ๊ตฌ๋งคํ๊ณ , ์ด๋ชจํฐ์ฝ ๊ตฌ๋งค ๋น์ฉ์ด 10,000์ ์ด์์ด ๋๋ฉด ์ด๋ชจํฐ์ฝ ๊ตฌ๋งค๋ฅผ ๋ชจ๋ ์ทจ์ํ๊ณ ์ด๋ชจํฐ์ฝ ํ๋ฌ์ค ์๋น์ค์ ๊ฐ์
ํฉ๋๋ค.
2๋ฒ ์ฌ์ฉ์๋ 25%์ด์ ํ ์ธํ๋ ์ด๋ชจํฐ์ฝ์ ๋ชจ๋ ๊ตฌ๋งคํ๊ณ , ์ด๋ชจํฐ์ฝ ๊ตฌ๋งค ๋น์ฉ์ด 10,000์ ์ด์์ด ๋๋ฉด ์ด๋ชจํฐ์ฝ ๊ตฌ๋งค๋ฅผ ๋ชจ๋ ์ทจ์ํ๊ณ ์ด๋ชจํฐ์ฝ ํ๋ฌ์ค ์๋น์ค์ ๊ฐ์
ํฉ๋๋ค.
1๋ฒ ์ด๋ชจํฐ์ฝ์ ๊ฐ๊ฒฉ์ 7,000์, 2๋ฒ ์ด๋ชจํฐ์ฝ์ ๊ฐ๊ฒฉ์ 9,000์์ ๋๋ค.
๋ง์ฝ, 2๊ฐ์ ์ด๋ชจํฐ์ฝ์ ๋ชจ๋ 40%์ฉ ํ ์ธํ๋ค๋ฉด, 1๋ฒ ์ฌ์ฉ์์ 2๋ฒ ์ฌ์ฉ์ ๋ชจ๋ 1,2๋ฒ ์ด๋ชจํฐ์ฝ์ ๊ตฌ๋งคํ๊ฒ ๋๊ณ , ๊ฒฐ๊ณผ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
์ฌ์ฉ์ | ๊ตฌ๋งคํ ์ด๋ชจํฐ์ฝ | ์ด๋ชจํฐ์ฝ ๊ตฌ๋งค ๋น์ฉ | ์ด๋ชจํฐ์ฝ ํ๋ฌ์ค ์๋น์ค ๊ฐ์ ์ฌ๋ถ |
1 | 1, 2 | 9,600 | X |
2 | 1, 2 | 9,600 | X |
์ด๋ชจํฐ์ฝ ํ๋ฌ์ค ์๋น์ค ๊ฐ์ ์๋ 0๋ช ์ด ๋์ด๋๊ณ ์ด๋ชจํฐ์ฝ ํ๋งค์ก์ 19,200์์ด ๋์ด๋ฉ๋๋ค.
ํ์ง๋ง, 1๋ฒ ์ด๋ชจํฐ์ฝ์ 30% ํ ์ธํ๊ณ 2๋ฒ ์ด๋ชจํฐ์ฝ์ 40% ํ ์ธํ๋ค๋ฉด ๊ฒฐ๊ณผ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
์ฌ์ฉ์ | ๊ตฌ๋งคํ ์ด๋ชจํฐ์ฝ | ์ด๋ชจํฐ์ฝ ๊ตฌ๋งค ๋น์ฉ | ์ด๋ชจํฐ์ฝ ํ๋ฌ์ค ์๋น์ค ๊ฐ์ ์ฌ๋ถ |
1 | 2 | 5,400 | X |
2 | 1, 2 | 10,300 | O |
2๋ฒ ์ฌ์ฉ์๋ ์ด๋ชจํฐ์ฝ ๊ตฌ๋งค ๋น์ฉ์ 10,000์ ์ด์ ์ฌ์ฉํ์ฌ ์ด๋ชจํฐ์ฝ ๊ตฌ๋งค๋ฅผ ๋ชจ๋ ์ทจ์ํ๊ณ ์ด๋ชจํฐ์ฝ ํ๋ฌ์ค ์๋น์ค์ ๊ฐ์
ํ๊ฒ ๋ฉ๋๋ค.
๋ฐ๋ผ์, ์ด๋ชจํฐ์ฝ ํ๋ฌ์ค ์๋น์ค ๊ฐ์
์๋ 1๋ช
์ด ๋์ด๋๊ณ ์ด๋ชจํฐ์ฝ ํ๋งค์ก์ 5,400์์ด ๋์ด๋๊ฒ ๋ฉ๋๋ค.
์นด์นด์คํก ์ฌ์ฉ์ n๋ช ์ ๊ตฌ๋งค ๊ธฐ์ค์ ๋ด์ 2์ฐจ์ ์ ์ ๋ฐฐ์ด users, ์ด๋ชจํฐ์ฝ m๊ฐ์ ์ ๊ฐ๋ฅผ ๋ด์ 1์ฐจ์ ์ ์ ๋ฐฐ์ด emoticons๊ฐ ์ฃผ์ด์ง๋๋ค. ์ด๋, ํ์ฌ ๋ชฉ์ ์ ์ต๋ํ์ผ๋ก ๋ฌ์ฑํ์ ๋์ ์ด๋ชจํฐ์ฝ ํ๋ฌ์ค ์๋น์ค ๊ฐ์ ์์ ์ด๋ชจํฐ์ฝ ๋งค์ถ์ก์ 1์ฐจ์ ์ ์ ๋ฐฐ์ด์ ๋ด์ return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์.
์ ํ์ฌํญ
- 1 ≤ users์ ๊ธธ์ด = n ≤ 100
- users์ ์์๋ [๋น์จ, ๊ฐ๊ฒฉ]์ ํํ์ ๋๋ค.
- users[i]๋ i+1๋ฒ ๊ณ ๊ฐ์ ๊ตฌ๋งค ๊ธฐ์ค์ ์๋ฏธํฉ๋๋ค.
- ๋น์จ% ์ด์์ ํ ์ธ์ด ์๋ ์ด๋ชจํฐ์ฝ์ ๋ชจ๋ ๊ตฌ๋งคํ๋ค๋ ์๋ฏธ์
๋๋ค.
- 1 ≤ ๋น์จ ≤ 40
- ๊ฐ๊ฒฉ์ด์์ ๋์ ์ด๋ชจํฐ์ฝ ๊ตฌ๋งค์ ์ฌ์ฉํ๋ค๋ฉด, ์ด๋ชจํฐ์ฝ ๊ตฌ๋งค๋ฅผ ๋ชจ๋ ์ทจ์ํ๊ณ ์ด๋ชจํฐ์ฝ ํ๋ฌ์ค ์๋น์ค์ ๊ฐ์
ํ๋ค๋ ์๋ฏธ์
๋๋ค.
- 100 ≤ ๊ฐ๊ฒฉ ≤ 1,000,000
- ๊ฐ๊ฒฉ์ 100์ ๋ฐฐ์์ ๋๋ค.
- 1 ≤ emoticons์ ๊ธธ์ด = m ≤ 7
- emoticons[i]๋ i+1๋ฒ ์ด๋ชจํฐ์ฝ์ ์ ๊ฐ๋ฅผ ์๋ฏธํฉ๋๋ค.
- 100 ≤ emoticons์ ์์ ≤ 1,000,000
- emoticons์ ์์๋ 100์ ๋ฐฐ์์ ๋๋ค.
users | emoticons | result |
[[40, 10000], [25, 10000]] | [7000, 9000] | [1, 5400] |
[[40, 2900], [23, 10000], [11, 5200], [5, 5900], [40, 3100], [27, 9200], [32, 6900]] | [1300, 1500, 1600, 4900] | [4, 13860] |
์ ์ถ๋ ฅ ์ ์ค๋ช
์ ์ถ๋ ฅ ์ #1
๋ฌธ์ ์ ์์์ ๊ฐ์ต๋๋ค.
์ ์ถ๋ ฅ ์ #2
๋ค์๊ณผ ๊ฐ์ด ํ ์ธํ๋ ๊ฒ์ด ์ด๋ชจํฐ์ฝ ํ๋ฌ์ค ์๋น์ค ๊ฐ์ ์๋ฅผ ์ต๋ํ ๋๋ฆฌ๋ฉด์, ์ด๋ชจํฐ์ฝ ํ๋งค์ก ๋ํ ์ต๋๋ก ๋๋ฆฌ๋ ๋ฐฉ๋ฒ์ ๋๋ค.
์ด๋ชจํฐ์ฝ | ํ ์ธ์จ |
1 | 40 |
2 | 40 |
3 | 20 |
4 | 40 |
์์ ๊ฐ์ด ํ ์ธํ๋ฉด 4๋ช
์ ์ด๋ชจํฐ์ฝ ํ๋ฌ์ค ๊ฐ์
์์ 13,860์์ ํ๋งค์ก์ ๋ฌ์ฑํ ์ ์์ต๋๋ค. ๋ค๋ฅธ ํ ์ธ์จ์ ์ ์ฉํ์ฌ ์ด๋ชจํฐ์ฝ์ ํ๋งคํ ์ ์์ง๋ง ์ด๋ณด๋ค ์ด๋ชจํฐ์ฝ ํ๋ฌ์ค ์๋น์ค ๊ฐ์
์๋ฅผ ์ต๋ํ ๋๋ฆฌ๋ฉด์, ์ด๋ชจํฐ์ฝ ํ๋งค์ก ๋ํ ์ต๋๋ก ๋๋ฆฌ๋ ๋ฐฉ๋ฒ์ ์์ต๋๋ค.
๋ฐ๋ผ์, [4, 13860]์ return ํ๋ฉด ๋ฉ๋๋ค.
๋์ ํ์ด
- ํ์ด์ฌ์ ํ๊ธ์ ์ฌ์ฉํ ์ ์์ด์ ์ข๋ค.
- ๋ฌด์ง์ฑ์ผ๋ก ๋ฌธ์ ํ ๋๋ ํ๊ธ๋ก ํธ๋๊ฒ ๋ ์ข์ ๋ฏ...
from itertools import product
def solution(์ฌ์ฉ์, ์ด๋ชจํฐ์ฝ):
๊ธธ์ด = len(์ด๋ชจํฐ์ฝ)
๋ต = [0, 0]
for ํ๋งค in product(range(10, 41, 10), repeat=๊ธธ์ด):
์นด์ดํธ = 0
๋ = 0
for i in range(len(์ฌ์ฉ์)):
์ฌ์ฉ์_ํ๋งค = ์ฌ์ฉ์[i][0]
ํฉ๊ณ = 0
for j in range(len(ํ๋งค)):
if ์ฌ์ฉ์_ํ๋งค <= ํ๋งค[j]:
ํฉ๊ณ += ์ด๋ชจํฐ์ฝ[j] * (100 - ํ๋งค[j]) / 100
if ํฉ๊ณ >= ์ฌ์ฉ์[i][1]:
์นด์ดํธ += 1
else:
๋ += ํฉ๊ณ
if ๋ต[0] > ์นด์ดํธ:
continue
if ๋ต[0] == ์นด์ดํธ and ๋ต[1] > ๋:
continue
๋ต = [์นด์ดํธ, ๋]
return ๋ต
- ์๋ ์ฒดํฌ (ํจ์จ์ฑ ํ ์คํธ๊ฐ ์์ผ๋ฏ๋ก ์๋ฏธ๋ ์๋ ๊ฒ ๊ฐ๋ค)
์ ํ์ฑ ํ
์คํธ
ํ
์คํธ 1 ใ ํต๊ณผ (0.04ms, 10.5MB)
ํ
์คํธ 2 ใ ํต๊ณผ (0.10ms, 10.5MB)
ํ
์คํธ 3 ใ ํต๊ณผ (0.43ms, 10.5MB)
ํ
์คํธ 4 ใ ํต๊ณผ (2.18ms, 10.4MB)
ํ
์คํธ 5 ใ ํต๊ณผ (4.30ms, 10.3MB)
ํ
์คํธ 6 ใ ํต๊ณผ (1.98ms, 10.3MB)
ํ
์คํธ 7 ใ ํต๊ณผ (19.01ms, 10.4MB)
ํ
์คํธ 8 ใ ํต๊ณผ (9.02ms, 10.5MB)
ํ
์คํธ 9 ใ ํต๊ณผ (91.67ms, 10.3MB)
ํ
์คํธ 10 ใ ํต๊ณผ (38.08ms, 10.6MB)
ํ
์คํธ 11 ใ ํต๊ณผ (387.94ms, 10.4MB)
ํ
์คํธ 12 ใ ํต๊ณผ (191.02ms, 10.3MB)
ํ
์คํธ 13 ใ ํต๊ณผ (1778.62ms, 10.4MB)
ํ
์คํธ 14 ใ ํต๊ณผ (1591.69ms, 10.6MB)
ํ
์คํธ 15 ใ ํต๊ณผ (84.73ms, 10.6MB)
ํ
์คํธ 16 ใ ํต๊ณผ (84.02ms, 10.2MB)
ํ
์คํธ 17 ใ ํต๊ณผ (0.69ms, 10.3MB)
ํ
์คํธ 18 ใ ํต๊ณผ (24.74ms, 10.4MB)
ํ
์คํธ 19 ใ ํต๊ณผ (0.06ms, 10.3MB)
ํ
์คํธ 20 ใ ํต๊ณผ (0.06ms, 10.4MB)
- ์ด๋ฒ์ ์๊ฒ ๋ itertools ๋ฌด์ง์ฑ์ผ๋ก ์กฐํฉ ๊ฐ์ ๊ฑฐ ํ ๋ ์ข์ ๊ฒ ๊ฐ๋ค.
from itertools import product
emot = [7000, 9000, 8000, 10000]
leng = len(emot)
for sales in product(range(10, 41, 10), repeat=leng):
print(sales)
- ๊ทธ๋ฆฌ๊ณ ๋ค๋ฅธ ์ฌ๋๋ค ์์ค ์ฝ๋ ๋ณด๋๊น ๋ด๊ฐ ๋ชจ๋ฅด๋ ๊ฒ ๋ง๋ค.
for item_price, item_percent in zip(emoticons, p):
if item_percent >= buy_percent:
user_price += item_price * (100-item_percent) * 0.01
- zip()ํจ์
- ๊ธธ์ด๊ฐ ๊ฐ์ ๋ฆฌ์คํธ๋ฅผ ์์๋ณ๋ก ๋ฌถ์ด์ ํํ ํํ๋ก ์ฌ์ฉํ ์ ์๋ค.
- ๊ธธ์ด๊ฐ ๋ค๋ฅผ ๊ฒฝ์ฐ, ๊ฐ์ฅ ์งง์ ์์ ๊ธฐ์ค์ผ๋ก ๋ฐ๋ณต๋ฌธ์ด ๋๋๋ค.
x = [1, 2, 3]
y = ['a', 'b', 'c']
z = ['๊ฐ', '๋', '๋ค']
for i, j, k in zip(x, y, z):
print('ํ์ฌ i๋', i, '์ด๊ณ , j๋', j, '์ด๊ณ , k๋', k, '์
๋๋ค.')
# ์ถ๋ ฅ ๊ฒฐ๊ณผ
ํ์ฌ i๋ 1 ์ด๊ณ , j๋ a ์ด๊ณ , k๋ ๊ฐ ์
๋๋ค.
ํ์ฌ i๋ 2 ์ด๊ณ , j๋ b ์ด๊ณ , k๋ ๋ ์
๋๋ค.
ํ์ฌ i๋ 3 ์ด๊ณ , j๋ c ์ด๊ณ , k๋ ๋ค ์
๋๋ค.
์ด์ ๋จ์ ๋ฌธ์ ๊ฐ์ (์ธ์ด : Python์ผ๋ก ์ค์ )
๋ ๋ฒจ | ํผ ๋ฌธ์ | ์ ํผ ๋ฌธ์ |
0 | 99 | 0 |
1 | 70 | 0 |
2 | 58 | 37 |
3 | 6 | 58 |
4 | 0 | 22 |
5 | 0 | 7 |
'๊ฒ์ ํ๋ก๊ทธ๋๋ฐ > Python ํ๋ก๊ทธ๋๋ฐ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
ํ๋ก๊ทธ๋๋จธ์ค ๋จ์ด ํผ์ฆ (0) | 2023.02.14 |
---|---|
ํ๋ก๊ทธ๋๋จธ์ค ์ธ์ฌ๊ณ ๊ณผ (0) | 2023.02.14 |
์ฐ์ ์์ ํ๋ฅผ ํํ, ๋ํ๋ก ๋ณ๊ฒฝ (0) | 2023.02.10 |
ํ๋ก๊ทธ๋๋จธ์ค ์ฝ๋ฉํ ์คํธ ๊ณ ๋์ Kit (2) ํด์ (0) | 2023.02.09 |
ํ๋ก๊ทธ๋๋จธ์ค ์ฝ๋ฉํ ์คํธ ๊ณ ๋์ Kit (1) (0) | 2023.02.08 |