평범하게 재귀함수 사용하면 시간초과가 된다.그래서 리스트에 값을 저장하는 방식으로 풀어보았다. def fibonacci(n): num = [0] * n num[0:1] = [0,1] if n == 0: return 0 if n == 1: return 1 for rpt in range(2, n + 1): num[rpt] = num[rpt - 1] + num[rpt - 2] return num[n] # 아래는 테스트로 출력해 보기 위한 코드입니다. print(fibonacci(8))
N = int(input()) minus = 1 for Repeat in range(0, 2 * N - 1): if 2 * N - Repeat > N: for repeat in range(0, Repeat): print(" ", end = "") for Rpt in range(0, 2 * N - minus): print("*", end = "") minus += 2 if Repeat == N - 1: minus -= 4 else: for repeat in range(0, 2 * N - Repeat - 2): print(" ", end = "") for Rpt in range(0, 2 * N - minus): print("*", end = "") minus -= 2 print("")
소스를 조금 더 간단하게 해보려고 했지만 이게 최대인거 같다. N = int(input()) minus = 2 for Repeat in range(1, N * 2): if N - Repeat >= 0: for repeat in range(0, Repeat): print("*", end = "") for Rpt in range(0, N * 2 - minus): print(" ", end = "") for rpt in range(0, Repeat): print("*", end = "") minus += 2 if N - Repeat == 0: minus -= 4 else: for repeat in range(0, 2 * N -Repeat): print("*", end = "") for Rpt in range(..
지금까지 나온 문제들을 잘 섞어보자 N = int(input()) minus = 2 for Repeat in range(1, 2 * N): if N - Repeat >= 0: for repeat in range(Repeat, N): print(" ", end = "") for rep in range(0, 2 * Repeat - 1): print("*", end = "") else: for Rpt in range(0, -(N - Repeat)): print(" ", end = "") for rpt in range(1, 2 * N - minus): print("*", end = "") minus += 2 print("")
2자리수 까지는 전부 등차수열을 이루기 때문에 입력받은 그대로 출력하면 된다. 3자리수부터는 100의 자리수 - 10의 자리수 와 10의 자리수 - 1의 자리수의 값이 같을 경우 개수를 추가하는 방식으로 풀었다.1000의 경우에는 999와 상황이 같기 때문에 999까지만 계산해야 한다. num = int(input()) cnt = 99 if num < 100: print(num) quit() if num == 1000: for i in range(100, 1000): h,t,n = str(i)[0],str(i)[1],str(i)[2] if int(h) - int(t) == int(t) - int(n): cnt += 1 else: for i in range(100, num+1): h,t,n = str(i)..