목록알고리즘/문제 (27)
어디까지 갈 수 있을까?

문제링크 www.acmicpc.net/problem/2193 이게 왜 피보나치인 지 궁금해서 질문 게시판 보고 정리했다 [답코드] 1 2 3 4 5 6 7 8 9 import sys input=sys.stdin.readline n=int(input()) fib=[1, 1] for i in range(n-2): fib.append(fib[-1]+fib[-2]) print(fib[-1]) cs [풀이법] fib(n)=fib(n-1)+fib(n-2)가 나오는 이유는 ① 뒤에 0은 아무데나 붙을 수 있다 fib(n-1) 수열에 0을 붙이면 된다 ② 뒤에 1이 붙는 수열은 사실상 2자리가 고정돼있다고 생각해야한다. 1이 연속될 수 없으므로 fib(n-2)의 수에 01이 붙어 fib(n)을 구성한다고 생각해야 한다..

문제링크 www.acmicpc.net/problem/1783 [읽기 전에] ① 나이트가 이런식으로 이동했다면 3칸 방문한 것이다. ② 1, 2, 3, 4 이동 방법을 모두 한 번 씩 사용하고 난 후에는 1, 2, 3, 4 아무거나 사용해서 움직여도 가능하다 이동횟수가 4회째 되는 파란 화살표 이후 부분은 1, 4만 계속 이용해서 움직여도 무방하다 [답코드] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 import sys input=sys.stdin.readline n, m=map(int, input().split()) #for문 안 써도 됨 if n==1: print(1) elif n==2: print(min(4, (m + 1) // 2)) else: if m

문제링크 www.acmicpc.net/problem/18238 index를 사용하는 문제 [답코드] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 import sys input=sys.stdin.readline n = input().strip() #ZOAC alpha = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' result = 0 now = alpha.index('A') for i in n: target = alpha.index(i) if abs(target-now)