코딩연습
[코딩연습]태민이의 취미 (구름-1단계) [통과x]
마진
2021. 5. 10. 20:25
풀이과정
0. 1부터 n까지 정수들의 세제곱 합
sum = {n*(n+1)/2}^2
: 1~n 까지 정수들의 합을 제곱하면 나온다.
1. sum (1~n 까지의 합)을 구한 뒤 제곱하여 1000000007로 나눈 나머지를 출력.
-----------------------------------------------------------------------------------------------------------------------------------
<1차 시도 : For-Loop 활용 - 테스트 3, 4번에서 불일치 발생>
import java.io.*;
class Main {
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String input = br.readLine();
long volume=0L;
for(int i=1; i<= Integer.parseInt(input); i++){
volume += i*i*i;
}
System.out.println(volume%1000000007);
}
}
반복문을 통하여 값을 구하려 했으나 1,2번과 달리 3,4번에서 통과하지 못함.
<2차 시도 : 수학공식 활용 - 테스트 4번에서 불일치>
import java.io.*;
class Main {
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int input = Integer.parseInt(br.readLine());
long sum = input*(input+1)/2l;
long sumV = sum*sum%1000000007;
System.out.println(sumV);
}
}
수학공식을 활용해보았으나 테스트 4번에서 불일치 발생.
-----------------------------------------------------------------------------------------------------------------------------------
테스트케이스 번호4를 어떻게 통과할 수 있을 까요??...
통과하게되면 추가 업데이트 하겠습니다.
level.goorm.io/?_ga=2.68154136.805838150.1620612777-871042495.1620010285