오늘의 난이도 : 🥉브론즈 1
ㄷㅏ음 문제는 실버를 기약하며...
https://www.acmicpc.net/problem/1292
1292번: 쉽게 푸는 문제
첫째 줄에 구간의 시작과 끝을 나타내는 정수 A, B(1 ≤ A ≤ B ≤ 1,000)가 주어진다. 즉, 수열에서 A번째 숫자부터 B번째 숫자까지 합을 구하면 된다.
www.acmicpc.net
요런 문제인데요
1 2 2 3 3 3 4 4 4 4 ... 이렇게 생긴 수열을 만들어주고 (list로)
슬라이싱을 사용해서 A번째에서 B번째까지를 더해줍니다. (sum함수로)
코드
A, B = map(int, input().split())
numList = []
for i in range(1, B+1):
# B번째까지의 합을 구해야하므로 B개수만큼 존재해야함
for j in range(i):
numList.append(i)
result = sum(numList[A-1:B]) # A-1 인덱스에서 B-1 인덱스까지를 의미
print(result)
- 수열은 B개까지만 만들어줍니다. 그러므로 range(1, B+1) : 1~B라는 뜻
- 슬라이싱해주기
- [start:end:step] : 시작할 값, 마지막값+1, 건너뛸 정도 (생략할 경우 1)
- A번째 ~ B번째
- numList[A-1:B] 이므로 A-1인덱스부터 B-1인덱스까지를 의미한다.
- sum으로 슬라이싱한 구간 다 더해주기
- sum() : ()안의 값들을 다 더해줌
끝~
'🖥️ 오늘의 백준' 카테고리의 다른 글
백준 1158번 : 요세푸스 문제 [C++] (0) | 2024.09.09 |
---|---|
백준 2693번 : N번째 큰 수 [Python] (2) | 2024.03.06 |
백준 2501번 : 약수 구하기 [Python] (0) | 2024.03.05 |
백준 1264번 : 모음의 개수 [C++] (0) | 2023.08.09 |
백준 9934번 : 완전 이진 트리 [Python] (0) | 2023.05.27 |