Python/백준 (BOJ)

[BOJ][B2]시그마 - 2355

ㅋㅋ! 2025. 8. 24. 13:00

https://www.acmicpc.net/problem/2355

 

문제 전문은 링크 참조

문제가공

규칙성을 가지는 수열의 합은 양끝에서부터 항을 짝지으면 항상 합이 같으므로 이 성질을 이용하여 공식을 세우자.

(가우스의 일화)

  1. 수열의 개수를 확인하고, 이를 2로 나누어 times를 구한다.
  2. 수열의 첫 번째 값과 마지막 값의 합을 구하여 val이라 한다.
  3. 수열의 합은 val이 times번 반복된 값(val * times)이다.
  4. 단, 수열의 개수가 홀수라서 짝지어지지 않는 중간값이 있다면, 그 값을 추가로 더한다.

코드작성

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