런타임에러 원인
- 배열 인덱스 범위를 벗어났을 경우
- 0으로 나눌 때
- 사용하는 라이브러리에서 예외를 발생시켰을 때
- 재귀 호출이 너무 길어질 때
2798 블랙잭 / Python
추측 에러 원인: 1) 인덱스 에러
더보기
from itertools import combinations
N, M = map(int, input().split())
lst = list(map(int, input().split()))
c = list(combinations(lst, 3))
sum_c = list(map(sum, c))
diff = list(map(lambda x:x-M, sum_c))
# 음수 중 가장 큰 수
m = -9999
for i in diff:
if i<=0 and i>m:
m = i
if m != -9999:
print(sum_c[diff.index(m)])
if i<=0 and i>m: 에 안걸려서 diff.index[-9999]가 들어가버림
전부 M보다 커서 양수만 있는 경우가 있을 수 있음
-> if m != -9999: 일떄 출력 -> 틀림
위 코드에서 틀린 이유 못찾음
다른 사람 코드 보니
어차피 sum을 출력하므로 sum을 하고 바로 비교해서 biggest 값 출력함
내 풀이는 리스트로 다 만들어놓고 index로 다시 찾는데 비효율적
from itertools import combinations
N, M = map(int, input().split())
lst = list(map(int, input().split()))
biggest_sum = 0
for cards in combinations(lst, 3):
temp_sum = sum(cards)
if biggest_sum < temp_sum <= M:
biggest_sum = temp_sum
print(biggest_sum)
'Coding Test' 카테고리의 다른 글
[백준] 2110번 공유기 설치 이분 탐색 (0) | 2024.05.16 |
---|---|
[SQL] 쿼리문 작성 코테 대비 (0) | 2024.05.10 |
2차원 리스트 생성 후 요소 변경 (0) | 2023.02.06 |
[백준] 시간초과 (0) | 2023.01.22 |
[백준] CLASS1 (0) | 2023.01.22 |