728x90
반응형
🙆♂️문제
🙋♂️풀이
문제요약 : N장의 숫자 카드 중 M을 넘지 않으면서 M에 최대한 가까운 카드 3장의 합을 출력!
입력 값으로는 카드의 개수 N과 제한 값 M이 첫줄에 주어지고
둘째 줄에는 N개의 카드 숫자들이 주어진다.
🚀입력받기
n,m = map(int,input().split())
card = list(map(int, input().split()))
n에는 카드 수 m에는 제한 값 그리고 card 배열안에 카드 숫자들을 입력받았습니다.
🚀 제한 값을 넘지않는 값 배열에 넣기
win = []
for i in range(len(card)-2):
for j in range(i+1,len(card)-1):
for k in range(J+1,len(card)):
add = card[i]+card[j]+card[k]
if add <= m:
win.append(add)
for문을 총 3번 사용했습니다.
카드의 갯수가 5개라고 가정했을 때 총 나올 수 있는 덧셈 경우의 수입니다.
1번째 숫자가 i값 2번째 숫자가 j, 3번째 숫자가 k입니다. 규칙을 찾아서 규칙을 적용하면 for문을 작성할 수 있습니다.
(규칙은 알아서 찾아보는걸로)
그렇게 해서 더한 값이 m값보다 작거나 같으면 win이라는 배열에 넣어서 나올 수 있는 값을 구합니다.
🚀 출력하기
print(max(win))
max함수를 이용해서 배열에 저장된 최대값을 출력합니다. 파이썬이라 편합니다..
728x90
반응형
'코딩테스트 > 백준' 카테고리의 다른 글
[백준][Python] 1018. 체스판 다시 칠하기 (0) | 2022.07.15 |
---|---|
[백준][Python] 7568. 덩치 (0) | 2022.07.15 |
[백준][Python] 2231. 분해합 (0) | 2022.07.15 |
[백준][Python] 17478번. 재귀함수가 뭔가요? (0) | 2022.07.08 |
[파이썬] 00. 입력값 받는 법 (0) | 2022.07.07 |