https://www.acmicpc.net/problem/2635
2635번: 수 이어가기
첫 번째 수가 주어진다. 이 수는 30,000 보다 같거나 작은 양의 정수이다.
www.acmicpc.net
n = int(input())
mx_cnt = 0
nums = [n] # 처음 수 일단 넣기
mx_lst = []
for i in range(n,0,-1): # 거꾸로 탐색 (1~n)
a = 0
nums.append(i)
while True:
if nums[a] - nums[a+1] >= 0:
nums.append(nums[a] - nums[a+1])
a += 1 # 인덱스 한칸씩 옮기기
else:
break
if mx_cnt <= len(nums): # 최댓값 갱신
mx_cnt = len(nums)
mx_lst = nums # 출력해야하므로 따로 백업
nums = [n] # 리스트 초기화
print(mx_cnt)
print(*mx_lst)
'백준' 카테고리의 다른 글
백준 2839. 설탕배달 (0) | 2023.08.29 |
---|---|
백준 2628. 종이자르기 (0) | 2023.08.28 |
백준 2669. 직사각형 네개의 합집합의 면적 구하기 (0) | 2023.08.28 |
백준 1244. 스위치 켜고 끄기 (0) | 2023.08.21 |
백준 2346. 풍선 터뜨리기 (0) | 2023.08.20 |