안녕하세요!
디버깅 결과 37번째 줄에서 해당하는 예외가 발생할 수 있음을 확인했습니다.
if (word[i + 1] == 'z' && word[i + 2] == '=')
바로 말씀하신 대로, 'dz=' 인지를 확인하는 부분입니다.
질문자님께서는 i + 1번째 원소를 검사할 때 배열의 범위를 벗어나는 것을 방지하기 위해 35번째 줄에
else if (word[i] == 'd' && i + 1 < word.Length)
를 입력하셨습니다. 확실히 이렇게 하면 word[i + 1]이 마지막 원소를 벗어나 오류가 발생할 수 있는 경우는 걸러질 수 있지요. 하지만 37번째 줄에서는 word[i + 2] 도 검사함을 유의하시기 바랍니다. 이 경우 배열을 벗어날 수 있겠죠.
따라서 말씀하신 예외를 고치기 위해서라면 35번쨰 줄에서 인덱스를 확인한 것처럼 37번째 줄에도 추가로 해당 작업을 해 주시면 되겠지요.
gofc13 2년 전
해당 문제는 아래코드로 정답처리 시켜버렸습니다. ( 더 짧고 간결하게 할 수 있겠지만.....)
문제는 예외처리없이 dz를 입력하게되면 37줄에 IndexOutOfRange 발생하는데요. i+2가 범위를 벗어나서 발생하는 것 같은데 처리 방법을 모르겠어서 그냥 넘거벼렸습니다...
해당 에러를 예외처리 시키지 않고 진행하는 방법 부탁드립니다..