logout07   1년 전

뭐가 틀린건지 모르겠네요....

wizardrabbit   1년 전

안녕하세요? 해당 코드의 반례를 첨부했습니다. 반례에서는 수험번호가 11인 학생과 2인 학생이 모두 1점을 받아 동점인 상황이므로, 수험번호가 더 작은 2가 출력되야 합니다. 하지만 질문자님의 코드에서는 11이 출력되고 있습니다.

이러한 반례가 생기는 원인은, '11'과 '2'를 비교하는 시점에서 '11'과 '2'의 자료형이 모두 문자열이기 때문입니다. (파이썬의 'str' 자료형)

문자열을 '>' 또는 '<' 로 비교하게 될 경우에는 사전순으로 더 빨리 오는 문자열을 더 작은 것으로 처리합니다. '11' 은 '2' 보다 사전순으로 앞서므로 프로그램은 '11' 을 정답으로 고르게 됩니다.

우리가 원하는 것은 사전순으로 앞선 수를 찾는 것이 아니라, 더 작은 수를 찾는 것이니, 비교하는 모든 수험번호를 정수형으로 바꿔 주시면 되겠습니다! (파이썬의 'int' 자료형)

logout07   1년 전

감사합니다!!

댓글을 작성하려면 로그인해야 합니다.