[백준 1292 파이썬] 쉽게 푸는 문제

일단 해볼게·2022년 11월 1일
0

백준

목록 보기
49/132

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

# 쉽게 푸는 문제

A,B = map(int,input().split()) # A=시작, B=끝

count = 0 # A의 값
result = 0 # A의 값을 다 더한 최종 결과
i = 1 # A에서 뺄 것

while A != B+1: # 1 ≤ A ≤ B ≤ 1,000
    count += i
    if A - count > 0:
        i += 1
    else:
        result += i # A의 최종결과 저장
        A+=1 # A를 1 증가해서 다시 A에 해당하는 숫자 찾기
        i = 1 # i 초기화 
        count = 0 # count 초기화

print(result)

# 3 >= 1 + 2   -> 해당값 : 2
# 7 >= 1 + 2 + 3 & 7 < 1 + 2 + 3 + 4     -> 해당값 : 4

다른사람 풀이

a,b = map(int,input().split())
 
arr = [0]
for i in range(46):
    for j in range(i):
        arr.append(i)
 
print(sum(arr[a:b+1]))

a, b의 범위는 1000까지였기 때문에 반복문의 범위는 46까지만 구해도 된다. (len(arr) = 1036)
i값을 기준으로 이중 반복문을 사용하는데 빈 arr에 i를 추가한다. 값이 1부터 arr에 들어간다. (j를 추가하는 것이 아님!!)
어차피 범위가 1000까지라 배열에 다 넣어서 슬라이싱으로 범위를 나눠 누적 합을 구했다.

profile
시도하고 More Do하는 백엔드 개발자입니다.

0개의 댓글