pi문제 며칠째 매달리고 있습니다ㅠㅠ 도와주세요 scar1012 pi문제에 나와있는 테스트케이스도 문제없이 다 통과하는데 제출만 하면 오답이 나옵니다 ㅠㅠ 도대체 뭐가 잘못된걸까요ㅠㅠ int level(char arr[], int start, int mass) { if (start)start += 1; int end = start + mass - 1; int d = arr[start + 1] - arr[start]; int check = 0; for (int i = 2; i <= mass; i++) { //등차수열인지 확인 if (arr[start + i] - arr[start + i - 1] != d) break; else check++; } //d가 일정한 등차수열인 경우 if (check == mass - 2) { if (!d) return 1; else if (d == 1 || d == -1) return 2; else return 5; } //교대 if ((arr[start] == arr[start + 2]) && (arr[start] != arr[start + 1])) { switch (mass) { case 4: if (arr[start + 1] == arr[start + 3]) return 4; break; case 5: if (arr[start + 1] == arr[start + 3] && arr[start] == arr[end]) return 4; break; default: return 4; break; } } return 10; } int countChar(char arr[]) { int i; for (i = 0; arr[i] != '\0'; i++) {} return i; } int main(void) { int C, idx; scanf("%d", &C); for (idx = 0; idx<C; idx++) { char arr[10005]; int dp[10005]; scanf("%s", arr); int size = countChar(arr); dp[0] = dp[1] = 999999; dp[2] = level(arr, 0, 3); dp[3] = level(arr, 0, 4); dp[4] = level(arr, 0, 5); for (int i = 5; i <= size; i++) { dp[i] = 999999; for (int j = 3; j <= 5; j++) { int temp = level(arr, i - j, j) + dp[i - j]; if (temp<dp[i]) { dp[i] = temp; } } } printf("%d\n", dp[size - 1]); } return 0; } 8년 전
0개의 댓글이 있습니다. 정회원 권한이 있어야 커멘트를 다실 수 있습니다. 정회원이 되시려면 온라인 저지에서 5문제 이상을 푸시고, 가입 후 7일 이상이 지나셔야 합니다. 현재 문제를 푸셨습니다.
scar1012
pi문제에 나와있는 테스트케이스도 문제없이 다 통과하는데 제출만 하면 오답이 나옵니다 ㅠㅠ
도대체 뭐가 잘못된걸까요ㅠㅠ
int level(char arr[], int start, int mass) {
}
int countChar(char arr[])
{
int i;
for (i = 0; arr[i] != '\0'; i++) {}
return i;
}
int main(void) {
int C, idx;
scanf("%d", &C);
}
8년 전