1024번 - 수열의 합
알고리즘을 간단하게 설명하면,
int dp[]는 더해지는 수인데, ex) 1+2 = 1+1+'1'이라 할 수 있으므로 '1'을 더하고, 1+2+3는 1+1+1+'3'라 할 수 있으므로 3을 더하여 연속합을
쉽게 계산할 수 있도록 하기 위해 만들었습니다.
ex) input : 18 2 일 때
'(N - dp[L]) % L == 0'이면 '(N - dp[L]) / L'부터 다음 L개의 수를 출력했습니다.
(18 - 3) % 3 == 0이므로 start 수는 5, 5부터 L(3)개 이므로 5 6 7 출력!
일반적인 테스트 케이스는 다 통과가 되는데 제출 시 바로 틀렸습니다가 나옵니다.
어디에 오류가 있는지 도움주시면 감사하겠습니다 ㅠㅠ
자답 합니다.
// 계산
부분에서 조건문
if ((N - dp[L - 1]) % L == 0)에 'N - dp[L - 1] > -1' 조건을 추가해주어 음수부터 시작하지 못하도록 해결했습니다
댓글을 작성하려면 로그인해야 합니다.
muscj7 4년 전
알고리즘을 간단하게 설명하면,
int dp[]는 더해지는 수인데, ex) 1+2 = 1+1+'1'이라 할 수 있으므로 '1'을 더하고, 1+2+3는 1+1+1+'3'라 할 수 있으므로 3을 더하여 연속합을
쉽게 계산할 수 있도록 하기 위해 만들었습니다.
ex) input : 18 2 일 때
'(N - dp[L]) % L == 0'이면 '(N - dp[L]) / L'부터 다음 L개의 수를 출력했습니다.
(18 - 3) % 3 == 0이므로 start 수는 5, 5부터 L(3)개 이므로 5 6 7 출력!
일반적인 테스트 케이스는 다 통과가 되는데 제출 시 바로 틀렸습니다가 나옵니다.
어디에 오류가 있는지 도움주시면 감사하겠습니다 ㅠㅠ