반응형
[ Contents ]
1. 문제 (링크 참조)
2. 문제 풀이
n개의 연속된 자연수를 더했을 때, 짝수인지 홀수인지 판별하는 문제입니다.
1) 홀수부터 n개의 연속된 자연수의 합
2) 짝수부터 n개의 연속된 자연수의 합
경우의 수는 2가지입니다. 어차피 짝수판별에 합의 크기는 중요하지 않습니다.
따라서 '1부터 1+N까지의 합'과 '2부터 2+N까지의 합'을 구해서 짝수 판별을 합니다.
3. 코드
# 입력
n = int(input())
# 합 구하기
sum1 = n*(n+1)//2 # 1부터 n까지의 합
sum2 = (n+1)*(n+2)//2-1 # 2부터 n+1까지의 합
# 짝수 판별
res1 = sum1 % 2
res2 = sum2 % 2
# 출력
if res1 == res2 == 0:
print(2)
elif res1 == res2 == 1:
print(1)
else:
print(0)
먼저 연속된 수열의 합을 구합니다. 등차수열의 합 공식을 이용하면, 빠르게 계산할 수 있겠죠? 시간제한이 1초이기 때문에, 등차수열의 합 공식을 사용해서 시간을 아껴줍니다.
n(n+1)/2 = 1부터 n까지의 연속된 자연수의 합
반응형
'Algorithm' 카테고리의 다른 글
[구현/수학] 백준 17009 Winning Score - 파이썬(Python) (0) | 2022.08.07 |
---|---|
[Greedy/그리디] 백준 13597 Tri-du - 파이썬(Python) (0) | 2022.08.06 |
[구현/수학] 백준 19698 헛간 청약 - 파이썬(Python) (0) | 2022.08.04 |
[탐색/BFS] 백준 13549 숨바꼭질 3 - 파이썬(Python) (0) | 2022.08.03 |
[구현/수학] 백준 16693 Pizza Deal - 파이썬(Python) (0) | 2022.08.02 |
댓글