로컬에서 돌려봤는데 모두 맞았는데 채점 프로그램이 틀렸다고 했다면, 입출력에만 의존할 게 아니라 프로그램이 의도한 대로 동작하는 것이 보장되는지 코드를 다시 유심히 볼 필요가 있습니다.
6번째 줄에서 i를 4부터 시작해서 항상 2씩 건너뛰기 때문에 i는 짝수 값만 가지게 됩니다. 즉, A[5]부터 모든 홀수번째 인덱스에는 아무런 값을 넣은 적이 없으니 쓰레기값이 들어있습니다. 0은 메모리 상에서 매우 흔한 값이므로 질문자님의 컴퓨터에서 모조리 0으로 출력되었다고 해도 이상하지 않지만, 어디에서든 0이 나올 거라는 보장은 없습니다.
그렇다면 i=i+2 대신 i++이라고만 바꾸면 해결될까요? 그것도 아닙니다. 홀수인 경우는 A[i] = 0; 만 실행되고 8~12번째 줄은 실행되지 않아야 하는데 그걸 거르고 있지 않습니다.
이 짧은 코드에 구멍이 2개나 있었는데도, 다시 한 번 점검해보려고 하지 않고 결과만을 보셨기 때문에 문제점을 찾지 못한 것입니다.
그리고 질문은 질문 카테고리에 올려주세요.
iron1209 5년 전
제가 처음 풀때 짠 코드인데 논리적으로 문제가 없다고 생각합니다.
또한 구글에서 검색해서 비교해본 코드하고 출력값 비교 해봐도 2부터 30까지 모든 답이 일치합니다.
그런데도 채점에서 틀렷다고 처리하던데 제가 잘못 본걸까요?