rueki
BOJ 2018. 수들의 합 5 (투 포인터) 본문
728x90
반응형
https://www.acmicpc.net/problem/2018
1 ~ 15의 숫자에서 숫자의 합이 15가 되는 경우 count 하는 문제
- 시작 포인터와 끝 포인터를 여기서 첫 점에 설정
- 합이 15가 되는 경우 count ++, 끝 포인터는 한 칸 뒤로 보낸다.(이미 끝 포인터를 뒤로 보내면서 숫자들을 더했기 때문)
ex) 1 + 2 + 3 + 4 + 5 는 15, sp = 1, ep = 5를 가리킨다
ex) 1 + 6 + 7 + 8 의 경우 15를 초과, 초과하는 경우에는 앞으 숫자부터 뺀다. 즉 sp를 뒤로 미룬다
7 + 8이 15가 되기때문에 count ++
n = int(input())
cnt = 1
s, e = 1, 1
total = 1
while e != n:
if total == n:
cnt += 1
e += 1
total += e
elif total > n:
total -= s
s += 1
else:
e += 1
total += e
print(cnt)
728x90
반응형
'python' 카테고리의 다른 글
BOJ 17298. 오큰수 (Stack) (0) | 2022.10.05 |
---|---|
BOJ 1940. 주몽 (투 포인터) (1) | 2022.10.04 |
BOJ 3190. 뱀 (시뮬레이션) (1) | 2022.10.03 |
BOJ 1251. 단어나누기(구현, Greedy) (0) | 2022.10.03 |
BOJ 1713. 후보 추천하기(구현) (0) | 2022.10.03 |
Comments