๋ฌธ์ ์ค๋ช
๋น์ ์ด ๋ค๋๋ ํ๊ต๋ ๋งค๋ ์ฒด์ก๋ํ๋ฅผ ํฉ๋๋ค. ์ฒด์ก๋ํ๋ ์ฌ๋ฌ ์ข ๋ชฉ์ ๋ํด ๊ฐ ๋ฐ์ ํด๋น ์ข ๋ชฉ ๋ํ๊ฐ 1๋ช ์ฉ ๋์ ๋๊ฒฐ์ ํ๋ฉฐ, ํ ํ์์ ์ต๋ ํ๊ฐ์ ์ข ๋ชฉ ๋ํ๋ง ํ ์ ์์ต๋๋ค. ๋น์ ์ ๋ฐ์์๋ ํ ์ข ๋ชฉ๋น 1๋ช ์ ๋ํ๋ฅผ ๋ฝ์ผ๋ ค๊ณ ํฉ๋๋ค. ํ์๋ค๋ง๋ค ๊ฐ ์ข ๋ชฉ์ ๋ํ ๋ฅ๋ ฅ์ด ๋ค๋ฅด์ง๋ง ์ด ๋ฅ๋ ฅ์ ์์นํ๋์ด ์์ด ๋ฏธ๋ฆฌ ์ ์ ์์ต๋๋ค. ๋น์ ์ ๋ฐ์ ์ ๋ต์ ๊ฐ ์ข ๋ชฉ ๋ํ์ ํด๋น ์ข ๋ชฉ์ ๋ํ ๋ฅ๋ ฅ์น์ ํฉ์ ์ต๋ํํ๋ ๊ฒ์ ๋๋ค.
๋ค์์ ๋น์ ์ ๋ฐ ํ์์ด 5๋ช ์ด๊ณ , ์ข ๋ชฉ์ ๊ฐ์๊ฐ 3๊ฐ์ด๋ฉฐ, ๊ฐ ์ข ๋ชฉ์ ๋ํ ํ์๋ค์ ๋ฅ๋ ฅ์น๊ฐ ์๋ ํ์ ๊ฐ์ ๋, ๊ฐ ์ข ๋ชฉ์ ๋ํ๋ฅผ ๋ฝ๋ ์์์ ๋๋ค.
ํ ๋์ค | ํ๊ตฌ | ์์ | |
์ํ | 40 | 10 | 10 |
์์ฌ | 20 | 5 | 0 |
์ธ์ฉ | 30 | 30 | 30 |
์ ํ | 70 | 0 | 70 |
์ค๋ชจ | 100 | 100 | 100 |
ํ
๋์ค ๋ํ๋ก ์ค๋ชจ, ํ๊ตฌ ๋ํ๋ก ์ธ์ฉ, ์์ ๋ํ๋ก ์ ํ์ ๋ฝ๋๋ค๋ฉด, ์ธ ๋ช
์ ๊ฐ ์ข
๋ชฉ์ ๋ํ ๋ฅ๋ ฅ์น์ ํฉ์ 200(=100+30+70)์ด ๋ฉ๋๋ค.
ํ์ง๋ง, ํ
๋์ค ๋ํ๋ก ์ํ, ํ๊ตฌ ๋ํ๋ก ์ค๋ชจ, ์์ ๋ํ๋ก ์ ํ์ ๋ฝ๋๋ค๋ฉด ์ธ ๋ช
์ ๊ฐ ์ข
๋ชฉ์ ๋ํ ๋ฅ๋ ฅ์น ํฉ์ 210(=40+100+70)์ด ๋ฉ๋๋ค. ์ด ๊ฒฝ์ฐ๊ฐ ๋น์ ์ ๋ฐ์ ๊ฐ ์ข
๋ชฉ ๋ํ์ ๋ฅ๋ ฅ์น ํฉ์ด ์ต๋๊ฐ ๋๋ ๊ฒฝ์ฐ์
๋๋ค.
๋น์ ์ ๋ฐ ํ์๋ค์ ๊ฐ ์ข ๋ชฉ์ ๋ํ ๋ฅ๋ ฅ์น๋ฅผ ๋ํ๋ด๋ 2์ฐจ์ ์ ์ ๋ฐฐ์ด ability๊ฐ ์ฃผ์ด์ก์ ๋, ์ ๋ฐ๋ ๋ํ๋ค์ ํด๋น ์ข ๋ชฉ์ ๋ํ ๋ฅ๋ ฅ์น ํฉ์ ์ต๋๊ฐ์ return ํ๋ solution ํจ์๋ฅผ ์์ฑํ์์ค.
์ ํ ์ฌํญ
- 1 ≤ ability์ ํ์ ๊ธธ์ด = ํ์ ์ ≤ 10
- 1 ≤ ability์ ์ด์ ๊ธธ์ด = ์ข ๋ชฉ ์ ≤ ability์ ํ์ ๊ธธ์ด
- 0 ≤ ability[i][j] ≤ 10,000
- ability[i][j]๋ i+1๋ฒ ํ์์ j+1๋ฒ ์ข ๋ชฉ์ ๋ํ ๋ฅ๋ ฅ์น๋ฅผ ์๋ฏธํฉ๋๋ค.
์ ์ถ๋ ฅ ์
ability | result |
[[40, 10, 10], [20, 5, 0], [30, 30, 30], [70, 0, 70], [100, 100, 100]] | 210 |
[[20, 30], [30, 20], [20, 30]] | 60 |
์ ์ถ๋ ฅ ์ ์ค๋ช
์ ์ถ๋ ฅ ์ #1
- ๋ฌธ์ ์์์ ๊ฐ์ต๋๋ค.
์ ์ถ๋ ฅ ์ #2
- 1๋ฒ ํ์์ด 2๋ฒ ์ข ๋ชฉ์, 2๋ฒ ํ์์ด 1๋ฒ ์ข ๋ชฉ์ ๋ํ๋ก ์ฐธ๊ฐํ๋ ๊ฒฝ์ฐ์ ๋ํ๋ค์ ํด๋น ์ข ๋ชฉ์ ๋ํ ๋ฅ๋ ฅ์น์ ํฉ์ด ์ต๋๊ฐ ๋๋ฉฐ, ์ด๋ 60์ ๋๋ค.
ํ์ด
- ๋ฌด์ง์ฑ ์ฝ๋ฉ์ ์ ํน์ ์ด๊ธฐ์ง ๋ชปํ๊ณ ๊ทธ๋ฅ ๋ณธ๋ฅ์ด ์ด๋๋๋๋ก ํ์ด๋ฒ๋ ธ๋ค.
- ํ์์์ ์ข ๋ชฉ์๋ก ์กฐํฉ์ ๋ง๋ค๊ณ , ์กฐํฉ์ผ๋ก ๋ง๋ ๊ฑธ๋ก ์ด๋น๋ฆฌํฐ ํฉ์ฐํด์ ๋ ํฌ๋ฉด ๊ต์ฒด.
- ๊ทธ๋ ๊ฒ ๋ฃจํ๊ฐ ๋๋๋ฉด ๋ฅ๋ ฅ์น ํฉ์ ์ต๋๊ฐ์ด answer์ ๋จ๊ฒ ๋๋ค.
import itertools
def solution(ability):
answer = 0
ํ์์ = len(ability)
์ข
๋ชฉ์ = len(ability[0])
์กฐํฉ = itertools.permutations([i for i in range(ํ์์)], ์ข
๋ชฉ์)
for i in ์กฐํฉ:
_tmp = 0
index = 0
for j in i:
_tmp += ability[j][index]
index += 1
if _tmp > answer:
answer = _tmp
return answer
์ ํ์ฑ ํ
์คํธ
ํ
์คํธ 1 ใ ํต๊ณผ (85.10ms, 10.3MB)
ํ
์คํธ 2 ใ ํต๊ณผ (26.23ms, 10.3MB)
ํ
์คํธ 3 ใ ํต๊ณผ (3388.17ms, 10.4MB)
ํ
์คํธ 4 ใ ํต๊ณผ (29.24ms, 10.4MB)
ํ
์คํธ 5 ใ ํต๊ณผ (0.71ms, 10.4MB)
ํ
์คํธ 6 ใ ํต๊ณผ (0.01ms, 10.5MB)
ํ
์คํธ 7 ใ ํต๊ณผ (0.35ms, 10.5MB)
ํ
์คํธ 8 ใ ํต๊ณผ (3520.79ms, 10.5MB)
ํ
์คํธ 9 ใ ํต๊ณผ (31.01ms, 10.4MB)
ํ
์คํธ 10 ใ ํต๊ณผ (57.89ms, 10.5MB)
'๊ฒ์ ํ๋ก๊ทธ๋๋ฐ > Python ํ๋ก๊ทธ๋๋ฐ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[PCCP ๋ชจ์๊ณ ์ฌ#1] ์ด์์ฒด์ (์ฐ์ ์์ํ) (1) | 2023.03.08 |
---|---|
[PCCP ๋ชจ์๊ณ ์ฌ#1] ์ ์ ๋ฒ์น (์คํ) (0) | 2023.03.07 |
ํ๋ก๊ทธ๋๋จธ์ค ์ฝ๋ฉ์ ๋ฌธ์ญ๋์ธ์ฆ์ํ(PCCP) ์ฝ๋ฉํ์์ญ๋์ธ์ฆ(PCCE) (0) | 2023.03.06 |
ํ๋ก๊ทธ๋๋จธ์ค ๋ถ๋๋ณต๊ท (๊ทธ๋ํ/BFS/์ญ์) (0) | 2023.03.06 |
ํ๋ก๊ทธ๋๋จธ์ค ํ๊ดด๋์ง ์์ ๊ฑด๋ฌผ (2022 KAKAO BLIND RECRUITMENT) (0) | 2023.03.06 |