Algorithm/Python

[백준 1292] 쉽게 푸는 문제 (Python)

Minny27 2021. 7. 10. 15:44

문제 : 

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

 

1292번: 쉽게 푸는 문제

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

www.acmicpc.net

 

1. 문제 이해하기

  • 1부터 연속하는 숫자가 숫자의 개수만큼의 집합이 있습니다. (ex. 1 2 2 3 3 3 4 4 4 4...)
  • 입력으로 구간의 첫 번째와 마지막 번째가 주어질 때, 구간에 속하는 숫자의 합을 출력
  • 두 숫자는 1 이상 1000 이하

 

2. 문제 풀이 생각하기

  1. 연속된 숫자의 숫자 개수만큼의 1에서 1000까지 만들었습니다. (1000번째가 1000은 아닙니다.)
  2. 배열의 슬라이싱을 통해서 새로운 배열을 만듭니다.
  3. 그 배열의 합을 출력합니다.

 

3. 차근차근 구현하기

import sys
input = sys.stdin.readline
n, m = map(int, input().split())
arr = []
for i in range(1, 1001):
    for j in range(i):
        arr.append(i)
print(sum(arr[n - 1 : m]))

 

4. 피드백

  • 문제 이름만큼 그리 어려운 문제는 아니었던 것 같습니다.