파이썬 백준 1292번
브론즈 1
https://www.acmicpc.net/problem/1292
문제 보기
분류: 수학, 구현
문제 풀기
변수로 selected_num 와 count_down 를 두어 selected_num 로 1, 2, 3 단계로 증가하는 위치를 표시하여 그 수를 빈 리스트에 저장하되, count_down 으로 저장해야 할 숫자의 개수를 지정한다. 이렇게 [0, 1, 2, 2, 3, 3, 3, 4, 4, 4, 4, 5, ... ] 수열의 리스트를 형성하고, 입력되어진 구간에 대한 그 모든 수들을 for loop 을 통해 합을 구한다.
코드 보기
import sys
inputdata = sys.stdin.readline
def fnOneTwoTwoThreeThreeThree():
selected_num = 1
count_down = 1
for i in range (2_000):
if count_down == 0:
selected_num += 1
count_down = selected_num
continue
else:
num_ls.append(selected_num)
count_down -= 1
# print(num_ls) ## TEST PRINT.
def fnSumBetween(a, b):
total_sum = 0
for i in range (a, b + 1):
total_sum += num_ls[i]
print(total_sum)
if __name__ == "__main__":
a, b = map(int, inputdata().split())
num_ls = [0]
fnOneTwoTwoThreeThreeThree()
fnSumBetween(a, b)
'공부하기 > 백준' 카테고리의 다른 글
[Java] 백준 풀기 5337 - 웰컴 (0) | 2023.03.02 |
---|---|
[Python] 백준 풀기 10798 - 세로읽기 (0) | 2023.03.01 |
[Java] 백준 풀기 11382 - 꼬마 정민 (0) | 2023.02.27 |
[Python] 백준 풀기 9086 - 문자열 (0) | 2023.02.26 |
[Python] 백준 풀기 10867 - 중복 빼고 정렬하기 (0) | 2023.02.25 |