16900번 - 이름 정하기
예제는 다 맞게 나오는데, 다른 반례가 뭐가 있는지 모르겠어요 ㅠ ㅠ.
풀이 원리를 => 문자열개수 + (K-1)*(문자열개수-겹쳐지기사작하는 부분부터의 문자열개수)
이렇게 생각했는데,
무슨 문제인지 잘모르겠어요ㅠ ㅠ
=> 처음과 겹치는 부분이 중간 부터일 경우
3. 문자 하나만 쓰일 때
이런 경우 보다 더 있나요?
A = ((len - j) * (K - 1)) + len;
이 부분에서 int끼리 곱셈이 이루어져 오버플로우가 일어납니다.
예를 들어 입력으로 aaaa....(9999개)..b 300000 을 넣어보면 음수값이 출력됩니다.
aaaa....(9999개)..b 300000
변수들을 모두 long long으로 고치면 이 부분은 해결될 것 같습니다.
근데 이걸 고치고 제출하시면... 이번에는 시간초과가 뜰 것 같네요.
댓글을 작성하려면 로그인해야 합니다.
yoonfy4280 5년 전
예제는 다 맞게 나오는데, 다른 반례가 뭐가 있는지 모르겠어요 ㅠ ㅠ.
풀이 원리를 => 문자열개수 + (K-1)*(문자열개수-겹쳐지기사작하는 부분부터의 문자열개수)
이렇게 생각했는데,
무슨 문제인지 잘모르겠어요ㅠ ㅠ
=> 처음과 겹치는 부분이 중간 부터일 경우
3. 문자 하나만 쓰일 때
이런 경우 보다 더 있나요?