CLOCKSYNC RTE 발생하는 문제 도움요청드립니다. 임정민 코딩초짜 질문 드립니다. CLOCKSYNC 문제 아래와 같이 구현하였습니다. 하지만 제출시 RTE가 발생하고 있어 배열부분이 잘못되었나 이런 부분을 살펴보았지만 발견하지 못하여 질문 드립니다. 어떤상황에 RTE 발현될 수 있는지 도움 부탁드리겠습니다. #include <iostream> using namespace std; int minVal = 999999; int connected[10][5] = { { 0, 1, 2, -1, -1 }, { 3, 7, 9, 11, -1 }, { 4, 10, 14, 15, -1 }, { 0, 4, 5, 6, 7 }, { 6, 7, 8, 10, 12 }, { 0, 2, 14, 15, -1 }, { 3, 14, 15, -1, -1 }, { 4, 5, 7, 14, 15 }, { 1, 2, 3, 4, 5 }, { 3, 4, 5, 9, 13 } }; int clocks[16]; int C; void pushButton(int btnNum) { int i = 0; while (connected[btnNum][i] != -1 && i < 5) { clocks[connected[btnNum][i]] += 3; if (clocks[connected[btnNum][i]] == 15) clocks[connected[btnNum][i]] = 3; i++; } } bool allSet() { for (int i = 0; i < 16; i++) { if (clocks[i] != 12) { return false; } } return true; } int isDone(int btnNum) { if (btnNum == 10) { if (allSet()) return 0; else return minVal; } int ret = minVal; int thisminVal; for (int p = 0; p < 4; p++) { thisminVal = isDone(btnNum+1); ret = (ret < p + thisminVal) ? ret : p + thisminVal; pushButton(btnNum); } return ret; } void ImemSet(void * buffer, int c, size_t num) { char* temp = (char*)buffer; for (int i = 0; i < num; i++) *temp++ = (char)c; } int main() { cin >> C; while (C--) { ImemSet(clocks, -1, sizeof(clocks)); for (int i = 0; i < 16; i++) cin >> clocks[i]; int ans = isDone(0); cout << ((ans == minVal)?-1:ans) << endl; } return 0; } 9년 전
1개의 댓글이 있습니다. wookayin pushButton 함수에서 i=5 가 되면 어떤일이 발생할까요? 9년 전 link 정회원 권한이 있어야 커멘트를 다실 수 있습니다. 정회원이 되시려면 온라인 저지에서 5문제 이상을 푸시고, 가입 후 7일 이상이 지나셔야 합니다. 현재 문제를 푸셨습니다.
임정민
코딩초짜 질문 드립니다.
CLOCKSYNC 문제 아래와 같이 구현하였습니다.
하지만 제출시 RTE가 발생하고 있어
배열부분이 잘못되었나 이런 부분을 살펴보았지만
발견하지 못하여 질문 드립니다.
어떤상황에 RTE 발현될 수 있는지 도움 부탁드리겠습니다.
9년 전