Baekjoon/IM Level
[백준] 2635 수 이어가기 (실버5)
hellosonic
2023. 3. 13. 18:38
문제요약
나의 코드 및 설명
- n : 첫 번째 수
- fin_num
- for i in range(1, n+1):
num_list = []
num_list.append(n)
num_list.append(i)
num_list.append(n-i)
j = 3
두 번째 수 i의 범위를 1~100 까지 넣어본다.(문제 속 두 번째 수는 양수라고 했기 때문에 0에서 100이 아닌 1에서 100이다.) 이 때 for문 안에 num_list 를 초기화함으로써 두 번째 수가 들어갈 때 마다 리스트가 초기화 될 수 있도록 한다. n-i 는 세 번째 수 이고, 총 num_list에 3개의 숫자가 담겨지므로, j = 3 이다. - while문 : 네 번째부터의 수(value)가 음수이면 반복문을 탈출하고, 양수라면 num_list에 value를 추가하고, 숫자의 개수(j)를 1 증가 시킨다. 이 때, j가 최대 값이면 갱신하고, fin_num에 num_list를 추가하고, 만약 j가 최대값이 아니라면 계속 반복문을 수행한다.
n = int(input())
fin = 0 #개수
fin_num = [] #그 숫자
for i in range(1,n+1):
num_list = []
num_list.append(n)
num_list.append(i)
num_list.append(n-i)
j = 3
while True:
value = num_list[j-2] - num_list[j-1]
if value < 0:
break
else:
j += 1
num_list.append(value)
if j >= fin:
fin = j
fin_num = num_list
else:
continue
print(fin)
for i in range(len(fin_num)):
print(fin_num[i],end = " ")
if i ==len(fin_num) - 1:
print()