본문 바로가기

코딩/Python

[Python] 백준 2798 블랙잭

반응형

코드 작성

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