통과 코드
T = int(input())
n = [int(input()) for _ in range(T)]
for q in range(T):
s2 = n[q]**2
s3 = n[q]**2+n[q]
if n[q]%2 == 0:
s1 = (n[q]+1)*(n[q]//2)
print('#{} {} {} {}'.format(q + 1, s1, s2, s3))
else:
s1 = (n[q] + 1) * (n[q] // 2) + (n[q] + 1) // 2
print('#{} {} {} {}'.format(q+1,s1,s2,s3))
그 외
시간 초과가 발생한 초기 코드
T = int(input())
for tc in range(1,1+T):
N = int(input())
S1 = 0
for q in range(1,N+1):
S1 += q
S2 = N**2
S3 = S2+N
print('#{} {} {} {}'.format(tc,S1,S2,S3))
문제 풀이의 아이디어
1. S1은 1 + 2 + 3 + 4 = (1+4)*(4//2) 이런 형태로 구했음
# for문 돌려서 구하고 싶지 않았기 때문
2. S2는 1 = 1**2, 1 + 3 = 2**2, 1 + 3 + 5 = 3**2
3. S3는 S2에 n만큼 더하면 됨
4. 시간 초과가 발생한 코드의 원인은 s1을 구할 때 for문을 사용했기 때문인듯
# n은 최대 10**9이고 이는 10억이나 되는 숫자다.
# 10억번을 호출하는 행동이 반복되어서 시간 초과가 발생한 것 같다.
ps. 개인적인 코드와 코드를 작성의 이유를 적은 것입니다.
오류나 적절치 않은 문법이 존재할 수 있으며, 다른 분들께는 굉장히 비효율적인 방법으로 여겨질 수 있습니다.
혹시 개선 사항, 오류 및 문제에 대한 수정 사항 등을 댓글로 남겨주신다면 감사한 마음으로 배우고 수정하겠습니다
'코딩 문제해결 > 문제 풀이.SWEA' 카테고리의 다른 글
[SWEA 코딩] 세상의 모든 팰린드롬 - PYTHON #4522 (0) | 2021.01.10 |
---|---|
[SWEA 코딩] Digit sum - PYTHON #3750 (0) | 2021.01.10 |
[SWEA 코딩] 승률 비교하기 - PYTHON #3975 (0) | 2021.01.09 |
[SWEA 코딩] 두가지 빵의 딜레마 - PYTHON #5162 (0) | 2021.01.09 |
[SWEA 코딩] 늘어지는 소리 만들기 - PYTHON #4676 (0) | 2021.01.09 |