반응형
코드 작성
n,m = map(int, input().split())
arr = list(map(int, input().split()))
ans = 0
for i in range(n):
for j in range(i+1, n):
for k in range(j+1, n):
if arr[i] + arr[j] + arr[k] > m:
continue
else:
ans = max(ans, arr[i] + arr[j] + arr[k])
print(ans)
코드 풀이
#1.
3개의 수를 비교해야 하므로 for문을 3개 사용한다. 이때 주의해야 할 점이 범위!!!
arr의 리스트 중에서 첫 번째 수 i는 인덱스 0부터 n-1이다. 그럼 두 번째 수 j는 i+1부터 시작하며, 세 번째수 k는 j+1부터 시작한다.
#2.
3개의 수가 21이 넘는경우는 연산식에서 예외처리 해야하므로 continue를 쓰고, 그렇지 않으면 기존에 있던 ans 또는 3개의 수 중 큰 값을 선택한다.
반응형
'코딩 > Python' 카테고리의 다른 글
[Python] 백준 2475 검증수 (0) | 2022.12.09 |
---|---|
[Python] 백준 11053 가장 긴 증가하는 부분 (0) | 2022.12.09 |
[Python] 백준 7568 덩치 (1) | 2022.12.07 |
[Python] 백준 1912 연속합 (0) | 2022.12.04 |
[Python] 백준 1550 16진수 (0) | 2022.12.03 |