환형쉬프트 연산하는 JAEHASAFE 문제에서요.. 이 두 방식이 차이가 있나요? skan1543 시계방향으로 몇번의 환형쉬프트를 해야하는지를 shift(a,b); // b를 환형쉬프트 해서 a를 만듬. 으로 정의하구.. 이를 kmp(a+a,b); // b가 a+a안에 등장하는 최소idx 으로 뒀는데요! 책에서는 반시계 방향으로 몇번의 환형 쉬프트가 필요한지를 shift(b,a);로 정의하더라구요. 저도.. 맞는것같구. 이렇게 해서 첫번째 소스로 정답을 띄웠는데요! 근데 저는.. 반시계방향을 몇번 해야되는지는, (전체길이-시계방향으로 돌릴때 필요한 횟수)라고 생각해서 두번째 소스로 처리해서 제출하니 오답이 뜨네요.. 차이가 없지 않나요? ㅠㅠ... 답답허구만요.. scanf("%d", &t); while (t--) { string now; string need; int k, answer = 0; scanf("%d", &k); scanf("%s", temp); now = temp; for (int i = 0; i < k; i++) { scanf("%s", temp); need = temp; if (i % 2 == 0) answer += calc(need + need, now); else answer += calc(now+now, need); now = need; } printf("%d\n", answer); } while (t--) { string now; string need; int k, answer = 0; scanf("%d", &k); scanf("%s", temp); now = temp; for (int i = 0; i < k; i++) { scanf("%s", temp); need = temp; if (i % 2 == 0) answer += calc(need + need, now); else answer += need.length()-calc(need+need, now); now = need; } printf("%d\n", answer); } 8년 전
1개의 댓글이 있습니다. Being 매칭이 여러 번 일어날 때 가장 첫 번째 결과를 되돌려서 '최소화'했는데, 그걸 전체 길이에서 빼게 되면 '최대화' 하게 되겠죠. 극단적인 경우로 이미 패턴이 동일해서 회전하지 않아도 되는 경우라면 0을 더해야 맞겠죠? 8년 전 link 정회원 권한이 있어야 커멘트를 다실 수 있습니다. 정회원이 되시려면 온라인 저지에서 5문제 이상을 푸시고, 가입 후 7일 이상이 지나셔야 합니다. 현재 문제를 푸셨습니다.
skan1543
시계방향으로 몇번의 환형쉬프트를 해야하는지를
shift(a,b); // b를 환형쉬프트 해서 a를 만듬.
으로 정의하구.. 이를 kmp(a+a,b); // b가 a+a안에 등장하는 최소idx
으로 뒀는데요!
책에서는 반시계 방향으로 몇번의 환형 쉬프트가 필요한지를
shift(b,a);로 정의하더라구요.
저도.. 맞는것같구. 이렇게 해서 첫번째 소스로 정답을 띄웠는데요!
근데 저는.. 반시계방향을 몇번 해야되는지는,
(전체길이-시계방향으로 돌릴때 필요한 횟수)라고 생각해서 두번째 소스로 처리해서 제출하니 오답이 뜨네요..
차이가 없지 않나요? ㅠㅠ... 답답허구만요..
8년 전