반응형
츄르사려고 코딩하는 코집사입니다.
1. [구름LEVEL] 구름 태민이의 취미 파이썬(Python)
1) 문제 출처
https://level.goorm.io/exam/49094/%ED%83%9C%EB%AF%BC%EC%9D%B4%EC%9D%98-%EC%B7%A8%EB%AF%B8/quiz/1
2. 문제
태민이는 주사위를 수집하는 취미를 가지고 있습니다. 주사위의 모양과 색깔은 각기 다르며, 크기 또한 다릅니다. 태민이는 지금까지 모은 N개의 주사위가 너무 난잡하게 보관해놓고 있어서 정리를 결심했습니다. 그래서 우선 N개의 주사위를 크기 순서대로 정리해보려고 마음먹었습니다.
그렇게 주사위를 순서대로 정렬시켜보니 각 변의 길이가 1부터 N까지 모두 있는 것을 알게 되었습니다. 이 사실이 매우 신기했던 태민이는 이 주사위들의 부피의 합은 어떻게 될지 궁금해졌습니다. 태민이가 현재 가지고 있는 모든 주사위의 부피의 합은 얼마일까요? 태민이의 궁금증을 풀어주세요!
3. 풀이
- N값을 입력 받아서, 1부터 N+1까지 반복문을 도는데 i의 3제곱을 sum에 더한다.
- 마지막에 1000000007로 나눈 나머지를 출력하면 된다.
- 아니다. 위로 풀면 마지막에 시간초과 뜬다.
- 그래서, 세제곱의 합 공식을 사용해야 한다.
- 제곱의 합 경우에는 N(N+1)(2N+1) / 6이다.
- 근데, 여기서 세제곱의 합 공식은 (N(N+1) / 2)^2 이다.
4. 소스 코드
# -*- coding: utf-8 -*-
# UTF-8 encoding when using korean
import sys
input=sys.stdin.readline
N = int(input())
sum = 0
for i in range(1,N+1) :
sum += i**3
print(sum%1000000007)
정답 코드
# -*- coding: utf-8 -*-
# UTF-8 encoding when using korean
N = int(input())
print((N*(N+1) // 2)**2 % 1000000007)
위의 코드를 좀 더 보기 쉽게 풀면 아래 코드처럼 된다.
# -*- coding: utf-8 -*-
# UTF-8 encoding when using korean
N = int(input())
sum = (N*(N+1) // 2)
print(sum**2 % 1000000007)
반응형
'알고리즘 > 구름LEVEL' 카테고리의 다른 글
[구름LEVEL] 구름 삼각형의 넓이 파이썬(Python) (0) | 2022.01.21 |
---|---|
[구름LEVEL] 구름 최소값 파이썬(Python) (0) | 2022.01.19 |
[구름LEVEL] 구름 공백 없애기 파이썬(Python) (0) | 2022.01.18 |
[구름LEVEL] 구름 Hello Goorm ! 파이썬(Python) (0) | 2022.01.18 |
[구름LEVEL] 구름 홀짝 판별 파이썬(Python) (0) | 2022.01.18 |
[구름LEVEL] 구름 막대기 파이썬(Python) (0) | 2022.01.14 |
[구름LEVEL] 구름 약수 구하기 파이썬(Python) (0) | 2022.01.14 |
[구름LEVEL] 구름 정사각형의 개수 파이썬(Python) (0) | 2022.01.14 |
최근댓글