Re: 45.8 심사문제 코드 틀린점
, 도장_ 관리자님이 작성Unit 45.2나 45.3의 예제 코드를 기반으로 응용해야 합니다.
예제 코드는 while 하나만 사용하고 있고, 심사문제도 while 하나로 충분합니다.
지금과 같은 방식으로 풀어도 됩니다. 이럴 때는 UNIT 6의 디버거 사용법을 참고해서 Visual Studio에서 F5 키로 실행하면 문제가 발생한 지점에서 프로그램이 멈추고, 변수의 값을 직접 살펴볼 수 있습니다.
조건문에 빨간색 X로 에러 위치가 표시되고, 아래 자동 창에서는 스크롤하면 변수를 살펴볼 수 있습니다. s2 배열이 [999]까지만 있고, i가 1000일 때 s2[1000]을 읽으려고 할 때 메모리를 읽을 수 없음을 알 수 있습니다. 이는 선언되지 않은 배열 범위를 읽으려고 시도했다는 뜻이고, 오류의 원인입니다.
s1, s2의 크기가 미스매치인 부분이 문제일 겁니다.
반복문을 두 번 반복해서 해결할 수 있지만, 효율적인 방법은 아닙니다.
반복문을 한 번만 사용해서 해결할 수 있는데, 두 번 반복하면 시간이 2배로 걸린다는 뜻입니다.
먼저 현재의 해법으로 문제 풀이를 시도하고
반복문을 하나로 줄이는 방식으로 접근하면 좋습니다.