인프런 커뮤니티 질문&답변

이경로님의 프로필 이미지
이경로

작성한 질문수

10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트

1-K

문제는 맞았지만 의문이 생겨 질문 남깁니다!

해결된 질문

작성

·

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점은 제게 큰 힘이 됩니다. :)

감사합니다.

강사 큰돌 올림.

이경로님의 프로필 이미지
이경로

작성한 질문수

질문하기