런타임에러는 실행시간과는 전혀 관련이 없습니다.
실행 중 어떤 이유에서든 더 이상 진행할 수 없게 되었을 때 일어나는 에러입니다.
이번 경우는 입력 데이터의 마지막에 '\n'이 반드시 있으리라는 보장이 없어서 생긴 에러인 것 같습니다.
일반적으로 입력 파일의 끝은 EOF(End Of File)로 끝나게 됩니다.
'\n'이 없다면 getchar()는 마지막에 EOF를 입력받고, 13번줄에서 arr[ch-'A']가 유효한 배열 범위가 아니라 런타임 에러가 나게 됩니다.
while문 조건에 && ch!=EOF를 추가해서 제출하면 맞았습니다!!를 받을 수 있네요,
추가로, 직접 콘솔을 띄워 실행 결과를 확인하시는 것이라면, EOF는 Ctrl+'Z'를 몇 번 누르면 입력되는 걸로 기억합니다.
yunsuk0616 3년 전
char 형 배열로 문자열 사용 배우기 전이라 getchar 로만 풀어보려했는데 끝까지 런타임 에러가 나네요...
이 코드에서 더 빠르게 할 수 있는 여지가 있을까요?
조언 부탁드리겠습니다