Algorithm/백준

[BOJ] 1292 - 쉽게 푸는 문제

비번변경 2022. 1. 4. 21:19

문제

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

 

1292번: 쉽게 푸는 문제

첫째 줄에 구간의 시작과 끝을 나타내는 정수 A, B(1 ≤ A ≤ B ≤ 1,000)가 주어진다. 즉, 수열에서 A번째 숫자부터 B번째 숫자까지 합을 구하면 된다.

www.acmicpc.net

1이 한 번, 2이 두 번, 3이 세 번… 그리고 n이 n번 등장하는 수열(1 2 2 3 3 3 4 4 4 4 5…)을 만들고, 특정 구간의 합을 구하는 계산한다.

구간의 시작과 끝을 나타내는 정수 A, B (1 ≤ A ≤ B ≤ 1,000)를 입력으로 받는다.

 

풀이

수열의 최대 길이가 1000이므로 수열을 직접 구현한 뒤 합을 구한다.

 

코드

import sys

# 수열 구현
ss = []
i = 1
while len(ss) <= 1000: # 수열의 길이가 1000이 될 때까지 반복
    for _ in range(i):
        ss.append(i) # i는 값만큼 등장하도록 한다.
    i += 1

# 입력
s, e = map(int, sys.stdin.readline().split())

# 출력
print(sum(ss[s - 1:e]))

 

결과

쉽게 푸는 문제 풀이 실행 결과