코드에 undefined behavior가 있다고 추정됩니다. 출력 직전에 assert(max_val >= 2);를 해도 런타임 에러가 아닌 틀렸습니다가 나오며, max_val의 선언 위치를 board의 위쪽으로 옮기기만 해도 int max_val = 0;으로 써도 통과됩니다.
정확히 본 것인지는 모르겠으나, 22번째 줄과 같은 부분에서 첫 칸이 비어있는 경우 position이 0인 상태에서 board[i][position - 1]에 접근하게 될 것 같습니다.
hhhjs0133 1년 전
문제에서 최소 한개의 블록을 준다했으므로 max_value의 최소값은 2입니다
그래서 max_value 최솟값을 0이 아니라 2로 수정하고 했더니 잘됩니다
근데 제생각엔 0으로 놓고 해도 전수조사 하기 떄문에 2가 나와야하는데 문제오류인것 같습니다