본문 바로가기
코딩연습

[코딩연습]태민이의 취미 (구름-1단계) [통과x]

by 마진 2021. 5. 10.

 

풀이과정

 

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