dnwls4659   2년 전

배열을 이용해서 풀긴 풀었는데 이 방법 말고 다른 방법을 좀 알아보다가 아스키코드를 이용하는 방법을 생각해봤는데요.

코드를 아래와 같이 짰는데 EOFError가 출력 되면서 틀린 답으로 인식하고 있습니다.

혹시 EOFError 예외처리를 해주면 해결이 되는 문제인가요? 계속 해봤는데 잘 모르겠어서 질문 드립니다.

djm03178   2년 전

예제를 한 번 입력해보세요.

dnwls4659   2년 전

예제는 입력했을때 정상적으로 출력은 되는 상황입니다.

djm03178   2년 전

어제 이후로 코드를 수정하셨네요. 이 코드 그대로 내면 EOFError가 아닌 틀렸습니다가 나옵니다.

djm03178   2년 전

어제는 3, 4번째 줄을 list(input())이라고 하셨기 때문에 END가 입력되어도 a와 b는 "END"가 아니라 ['E', 'N', 'D']이기 때문에 5번째 줄이 참이 되지 못하고 그대로 루프를 계속 돌기 때문에 다음 루프에서 입력을 받으려고 할 때 문제가 생긴 것입니다.

현재 코드가 틀린 이유는 단순히 알파벳의 값을 합하는 것만으로는 정확하게 비교할 수 없기 때문입니다. 다음과 같은 반례가 있습니다.

djm03178   2년 전

어제의 코드 그대로 테스트를 해보셨다면 예제에 대한 출력은 아래와 같이 존재하지 않는 Case 5에 대한 답을 출력하고 프로그램도 종료되지 않고 있는 상태가 되었을 것입니다.

dnwls4659   2년 전

네, 맞습니다. 처음에는 리스트에 하나하나 받아와서 그걸 반복문을 이용해 아스키 코드 변환값으로 더해주면 똑같은 단어지만 순서가 바뀌어도 어차피 값은 같으니까 될 거 같다고 생각했는데 생각해보니 숫자만으로는 판단이 불가능하겠네요...! 조언 감사합니다.

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