youbeen   1년 전

자꾸 런타임 오류가 뜨는데ㅠㅠ 

행과 열의 크기 최대가 100이라, 조건문 걸었는데도 자꾸 오류가 뜹니다ㅠㅠ

혹시 어디가 잘못된걸까요..

g072923   1년 전

max_col과 max_row가 100이 넘어가는 경우가 생길 것 같습니다,

그래서 55행과 110행에서 할당된 범위를 넘어서 접근하는 경우가 발생합니다.

또 max_col과 max_row를 선언할떄 초기화를 해주셔야합니다

youbeen   1년 전

우선 답변 정말 감사드립니다!!

max_col과 row_col만 0으로 초기화하니 정답이 되었습니다!!

하지만, max_col과 max_row가 100이 넘어가는 경우는 없을 것이라고 판단됩니다...!!

그 이유는,, (여기서부터 제 생각)

num_cnt의 배열의 값(1부터 100까지) 모두 다 0이 아닌 경우의 수가 나올 수는 없을 것 같습니다.

즉,

num_cnt[1] = 1이상

num_cnt[2] = 1이상

...

num_cnt[100] = 1이상

이 불가능합니다.


이유는, 그러기 위해서는, 그 전 배열이 1 2 3 4 5 6 7... 100이어야 하는데,

그렇다면 그 전 배열이 또 1이 2개 3이 4개...99가 100개 여야 하는데 불가합니다.


따라서, 저는 num_cnt가 1이상이 되는 것을 합한 v_size가 50도 넘기는 것이 힘들 것이라고 판단하여,

max_col = max(max_col, v_size)라고 했었습니다..!!



비로소 정답은 되었지만, 답변자님의 조언처럼 

max_col = max(max_col, min(100, v_size));

max_row = max(max_row, min(100, k));

로 바꾸는 것이, 훨씬 더 안전하고 가독성 있는 코드라 생각됩니다!!

감사합니다.

g072923   1년 전

제가 착각했네요 좋은 지적 감사합니당

댓글을 작성하려면 로그인해야 합니다.