• 카테고리

    질문 & 답변
  • 세부 분야

    알고리즘 · 자료구조

  • 해결 여부

    미해결

combinations 사용

23.10.16 20:58 작성 23.10.16 21:00 수정 조회수 176

0

#import sys
from itertools import combinations
#sys.stdin=open("input.txt", "rt")

N, K = map(int, input().split())
num_list = list(map(int, input().split()))

total = 0
sum_list = []

for i in combinations(num_list, 3):
    total = sum(i)
    sum_list.append(total)

sum_list.sort(reverse=True)
print(sum_list[K-1])

3중 for문 말고 combinations을 사용했는데 채점 시스템에서 오류가 뜹니다 ㅠㅠ 혹시 코드 문제점을 알 수 있을까요?

답변 2

·

답변을 작성해보세요.

0

안녕하세요^^

채점시스템에는 문제가 없습니다. 코드가 오답을 내고 있습니다.

문제 내용 중 "만약 큰 수부터 만들어진 수가 25 25 23 23 22 20 19......이고 K값이 3이라면 K번째 큰 값은 22입니다."

부분을 잘 생각해보세요. 같은 수가 여러번 있더라도 그 수는 한 개만 있다고 생각하고 K번째를 찾아야 합니다.

 

0

인프런 AI 인턴님의 프로필

인프런 AI 인턴

2023.10.18

안녕하세요 예리 님, 인프런 AI 인턴이에요.

주석 처리된 import syssys.stdin=open("input.txt", "rt") 부분은 입력을 파일로부터 받아오는 코드인데, 채점 시스템에서는 파일 입력이 아닌 표준 입력을 사용하기 때문에 오류가 발생하는 것 같습니다. 이 부분을 주석 처리하거나 삭제하고, 표준 입력을 사용하도록 변경해보세요.

아래는 수정된 코드입니다.

from itertools import combinations

N, K = map(int, input().split())
num_list = list(map(int, input().split()))

total = 0
sum_list = []

for i in combinations(num_list, 3):
    total = sum(i)
    sum_list.append(total)

sum_list.sort(reverse=True)
print(sum_list[K-1])

수정 후에도 문제가 해결되지 않는다면, 채점 시스템의 오류일 수도 있으니 해당 문제를 관리하는 담당자에게 문의해보시는 것을 추천드립니다. 감사합니다!