지나가던 개발자
[Python] 백준 6992번(Arithmetic Sequence) 문제 풀이 본문
for i in range(int(input())):
sequence = list(map(int, input().split()))[1:]
if len(sequence) == 0:
continue
if len(sequence) == 1:
print("The next 5 numbers after [" + str(sequence[0]) + "] are: [", end="")
for i in range(1, 6):
if i == 5:
print(str(sequence[0]+i) + "]")
continue
print(str(sequence[0]+i) + ", ", end="")
elif len(sequence) == 2:
print("The next 5 numbers after [" + str(sequence[0]) + ", " + str(sequence[1]) + "] are: [", end="")
for i in range(sequence[1]-sequence[0], 6*(sequence[1]-sequence[0]), sequence[1]-sequence[0]):
if i == 5*(sequence[1]-sequence[0]):
print(str(sequence[1]+i) + "]")
continue
print(str(sequence[1]+i) + ", ", end="")
else:
d = sequence[1]-sequence[0]
printed = False
for i in range(1, len(sequence)-1):
if sequence[i+1]-sequence[i] == d:
continue
print("The sequence", sequence, "is not an arithmetic sequence.")
printed = True
break
if not printed:
a = sequence[-1]
print("The next 5 numbers after", sequence, "are: [", end="")
for i in range(sequence[1]-sequence[0], 6*(sequence[1]-sequence[0]), sequence[1]-sequence[0]):
if i == 5*(sequence[1]-sequence[0]):
print(str(a+i) + "]")
continue
print(str(a+i) + ", ", end="")
코드가 상당히 불편한데, 뇌 빼고 코딩을 해서 그런다.
파이썬은 배열 전체를 출력 가능한데, n이 1일때와 2일 때는 그걸 깜빡하고 코드를 짜다가 n > 2일 때 그걸 깨닫고 코드를 짰다. 근데 또 n==1 or n==2 일 때 코드 수정하긴 귀찮아서 안바꿈...ㅋㅋ
'PS > Python' 카테고리의 다른 글
[Python] 백준 15965번(K번째 소수) 문제 풀이 (0) | 2022.10.23 |
---|---|
[Python] 백준 4355번(서로소) 문제 풀이 (1) | 2022.10.22 |
[Python] 백준 1546번(평균) 문제 풀이 (0) | 2022.10.21 |
[Python] 백준 10769번(행복한지 슬픈지) 문제 풀이 (0) | 2022.10.21 |
[Python] 백준 11816번(8진수, 10진수, 16진수) 문제 풀이 (0) | 2022.10.21 |
Comments