
https://www.acmicpc.net/problem/2355
문제 전문은 링크 참조
문제가공
규칙성을 가지는 수열의 합은 양끝에서부터 항을 짝지으면 항상 합이 같으므로 이 성질을 이용하여 공식을 세우자.
(가우스의 일화)
- 수열의 개수를 확인하고, 이를 2로 나누어 times를 구한다.
- 수열의 첫 번째 값과 마지막 값의 합을 구하여 val이라 한다.
- 수열의 합은 val이 times번 반복된 값(val * times)이다.
- 단, 수열의 개수가 홀수라서 짝지어지지 않는 중간값이 있다면, 그 값을 추가로 더한다.
코드작성
start,end = sorted(map(int,input().split()))
if start == end :
print(start)
exit()
total_times = end-start+1
times= total_times //2
val = end+start
if val ==0:
print(0)
exit()
print(val*times+((start+end)//2 if total_times%2 !=0 else 0) )
'Python > 백준 (BOJ)' 카테고리의 다른 글
| [BOJ][B2]주사위 네개- 2484 (0) | 2025.08.26 |
|---|---|
| [BOJ][B2]도비의 영어 공부 - 2386 (0) | 2025.08.25 |
| [BOJ][B2]이어 쓰기 3- 2154 (0) | 2025.08.23 |
| [BOJ][B2]소수단어 - 2153 (0) | 2025.08.22 |
| [BOJ][B2]숫자 놀이 - 2145 (0) | 2025.08.21 |