max_col과 max_row가 100이 넘어가는 경우가 생길 것 같습니다,
그래서 55행과 110행에서 할당된 범위를 넘어서 접근하는 경우가 발생합니다.
또 max_col과 max_row를 선언할떄 초기화를 해주셔야합니다
17140번 - 이차원 배열과 연산
우선 답변 정말 감사드립니다!!
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));
로 바꾸는 것이, 훨씬 더 안전하고 가독성 있는 코드라 생각됩니다!!
감사합니다.
댓글을 작성하려면 로그인해야 합니다.
youbeen 1년 전
자꾸 런타임 오류가 뜨는데ㅠㅠ
행과 열의 크기 최대가 100이라, 조건문 걸었는데도 자꾸 오류가 뜹니다ㅠㅠ
혹시 어디가 잘못된걸까요..