ํฐ์คํ ๋ฆฌ ๋ทฐ
728x90
๐ฉ ๋ธ๋ฃจํธํฌ์ค ์์ ํ์ ๋ฌธ์
thinking
3๊ฐ๋ฅผ ๊ณจ๋ผ์ผ ํ๋ฏ๋ก 3์ค for๋ฌธ์ ๋๋ฉด์ ์ฒซ๋ฒ์งธ ์นด๋ ๋ฝ๊ณ , ๊ทธ ์ดํ ์นด๋๋ค ์ค์์ ๋๋ฒ์งธ ์นด๋ ๋ฝ๊ณ , ๋๋ฒ์งธ์นด๋ ์ดํ ์นด๋๋ค ์ค์์ ๋ง์ง๋ง ์นด๋๋ฅผ ๋ฝ์ M๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ผ๋ฉด ๋ฆฌ์คํธ์ ๋ฃ๋๋ค.
๊ทธ ๋ฆฌ์คํธ์ ์์ ์ค max ๊ฐ์ ๋ฝ์ผ๋ฉด ๋๋ค.
์ฝ๋
N, M = map(int, input().split())
card = list(map(int, input().split()))
res = 0 # ๊ฒฐ๊ณผ๊ฐ ์ด๊ธฐํ
# for ๋ฌธ ๋๋ฉด์ ๋น๊ต๊ฒ์ฌ
for i in range(N):
for j in range(i+1, N):
for k in range(j+1, N):
if card[i]+card[j]+card[k] <= M:
res = max(res, card[i] + card[j] + card[k])
print(res)
itertools_combinations ์ฌ์ฉ ver
from itertools import combinations
N, M = map(int, input().split())
card_lst = list(map(int, input().split()))
max_value = 0 # ๊ฒฐ๊ณผ๊ฐ ์ด๊ธฐํ
for card in combinations(card_lst, 3):
# card = (5, 6, 7) <class 'tuple'>
tmp = sum(card)
if max_value < tmp <= M:
max_value = tmp
print(max_value)
ํ์คํ๊ธฐ
N(3 ≤ N ≤ 100) & M(10 ≤ M ≤ 300,000) ์ด์ด์ ์ํํ๋ฉด ์๊ฐ์ด๊ณผ ๋ ์ค ์์๋๋ฐ ์๋ฌ์
'algorithm > baekjoon' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค] 1074. Z / python ํ์ด์ฌ (0) | 2021.04.08 |
---|---|
[๋ฐฑ์ค] 2630. ์์ข ์ด ๋ง๋ค๊ธฐ / python ํ์ด์ฌ (0) | 2021.04.08 |
[๋ฐฑ์ค] 2164. ์นด๋2 / python ํ์ด์ฌ (0) | 2021.04.08 |
[๋ฐฑ์ค] 15649. N๊ณผ M (1) / python ํ์ด์ฌ (0) | 2021.04.08 |
[๋ฐฑ์ค] 1018. ์ฒด์คํ ๋ค์ ์น ํ๊ธฐ / python ํ์ด์ฌ (0) | 2021.04.08 |
๋๊ธ
๊ธ ๋ณด๊ดํจ
TAG
- swea
- ์๊ณ ๋ฆฌ์ฆ
- 2018 ์นด์นด์ค ๊ณต์ฑ
- ์์ด๋๋ง์๊ธฐ
- ๋ธ๋ฃจํธํฌ์ค
- dp
- BFS
- ๋ณด์์ผํ
- Python
- ๊ธฐ์ง๊ตญ์ค์น
- merge์๋ฌ
- git ๋ฏธ๋ฌ๋ง
- dfs
- ์ผ์ฑ๊ธฐ์ถ
- ์ผ์ฑ์ฝํ
- ํ๋ก๊ทธ๋๋จธ์ค
- ํ์ด์ฌ
- merge ์๋ฌ
- 20056 ๋ง๋ฒ์ฌ ์์ด์ ํ์ด์ด๋ณผ
- 20057 ๋ง๋ฒ์ฌ ์์ด์ ํ ๋ค์ด๋
- 2579 ๊ณ๋จ์ค๋ฅด๊ธฐ
- 17406 ๋ฐฐ์ด๋๋ฆฌ๊ธฐ4
- ๋ฐฑ์ค
- react
- 21609 ์์ด ์คํ๊ต
์ต๊ทผ์ ์ฌ๋ผ์จ ๊ธ
- Total
- Today
- Yesterday
์ต๊ทผ์ ๋ฌ๋ฆฐ ๋๊ธ