인프런 커뮤니티 질문&답변

kindjin12님의 프로필 이미지
kindjin12

작성한 질문수

입문자를 위한 코딩테스트 핵심(이론과 문제풀이) [Python]

도전 과제 (BOJ 사이트 문제)

백준 10546 배부른 마라토너

작성

·

59

0

python ide에서는 정답 맞는데 백준에서는 틀립니다 solution함수를 이렇게 하면 틀리는 이유는 뭔가요?

from collections import Counter

def solution(arr):
    pre_answer=Counter(arr)

    for key in pre_answer:
        if pre_answer[key]%2==1:
            return key
    
            

n=int(input("참가자 수:"))
arr=[]
for i in range(n):
      arr.append(input())
for j in range(n-1):
      arr.append(input())
print(solution(arr))

답변 1

0

안녕하세요, 인프런 AI 인턴입니다.

kindjin12님의 질문에 대한 답변입니다.

코드에는 문제가 없어 보이나 실제 백준에서 틀린다고 나오는 경우, 입력 방식의 문제일 수 있습니다. 백준 같은 온라인 저지 사이트에서는 input()으로 입력 값을 받을 때 문제에 주어진 입력 조건과 정확히 일치해야 합니다. 그러나 코드에 보면 처음에 참가자 수를 받는 input()에 “참가자 수:“라는 문자열을 출력하도록 되어 있어, 이 부분이 백준에서 예상하는 입력 방식과 다를 수 있습니다. 백준은 입력에 대한 설명 문자열 없이 오직 데이터만을 입력으로 받기 때문입니다.

또한, 백준 채점 서버에서는 코드 실행 시 사용자로부터 직접 입력을 받지 않고, 미리 정해진 입력 데이터를 코드에 제공합니다. 따라서 문제 해결 로직 외에 입력 받는 부분에 대해 사용자로부터 직접 입력을 유도하는 문구를 넣는 것은 백준에서의 정답 처리에 영향을 줄 수 있습니다.

해당 코드를 백준에서 제출하실 때는 input() 함수 내에 있는 “참가자 수:“와 같은 추가적인 문자열을 제거하고, 간결하게 입력을 받는 방식으로 수정하시면 문제 없이 동작할 것입니다.

kindjin12님의 프로필 이미지
kindjin12

작성한 질문수

질문하기