문제
https://www.acmicpc.net/problem/2018
풀이
from collections import deque
n = int(input())
cnt=0
arr = deque([])
for i in range(n,0,-1):
arr.append(i)
if sum(arr) == n:
cnt+=1
if sum(arr) >= n:
arr.popleft()
print(cnt)
n이 15면 15,14,13,12... 1 이렇게 for문을 돌려준다.
더하는 숫자들을 큐에 넣고 기준 숫자보다 크면 가장 큰, 즉 먼저 넣은 숫자를 큐에서 빼준다.
만약 같으면 cnt를 더해준다.
'코딩테스트 > Python' 카테고리의 다른 글
[Python] 백준 #2204 - 도비의 난독증 테스트 (2) | 2022.03.23 |
---|---|
[Python] 백준 #1411 - 비슷한 단어 (0) | 2022.03.23 |
[Python] 프로그래머스 - 구명보트 (0) | 2022.03.21 |
[Python] 프로그래머스 - 타겟 넘버 (0) | 2022.03.21 |
[Python] 프로그래머스 - 신고 결과 받기 (0) | 2022.03.21 |