해결된 질문
작성
·
437
0
http://boj.kr/d27f965013354f43a4356d5d2d5baea9
해당 문제를 왜 틀린지 몰라서 헤매다가 배열을 초기화해주니 정답처리 되었습니다. 그런데 배열 초기화를 하지 않았다고 하더라도 출력값은 어짜피 동일한데 왜 이전에는 오답처리가 되었는지 이해가 안되어서 질문 드립니다. 가비지 값때문에 그 값만큼 문자가 출력되어서 틀렸다면 이해가 되는데 출력값은 이전과 동일하게 나옵니다. 이전에 오답이었던 이유가 무엇인가요? 이전 코드는 해당 소스코드에서 a배열을 초기화하지 않았습니다.
답변 2
0
0
안녕하세요 경로님 ㅎㅎ
using namespace std;
int main()
{
int a[26] = {0, };
이부분 말씀하시는거죠?
a라는 배열을 0으로 초기화 했습니다.
(참고로 저렇게 초기화하면 안됩니다. 교안 내의 쓰지 말아야 할 초기화 방법 {0, } 참고해주세요.
저렇게 초기화를 안하면 쓰레기 값이 들어가게 됩니다. 즉, a[1] = 123123이런 값이 들어갈 수 있는 것이죠. 우리는 카운팅을 해야 합니다. 0부터 1, 2, 3... 이렇게 세어야 하는데 쓰레기값부터 세게 되면 오류가 발생하는 것이죠.
또 질문 있으시면 언제든지 질문 부탁드립니다.
좋은 수강평과 별점 5점은 제게 큰 힘이 됩니다. :)
감사합니다.
강사 큰돌 올림.