본문 바로가기

다이나믹 프로그래밍90

[백준] 9625번: BABBA (python) 9625번: BABBA 문제 ) 상근이는 길을 걷다가 신기한 기계를 발견했다. 기계는 매우 매우 큰 화면과 버튼 하나로 이루어져 있다. 기계를 발견했을 때, 화면에는 A만 표시되어져 있었다. 버튼을 누르니 글자가 B로 변했다. 한 번 더 누르니 BA로 바뀌고, 그 다음에는 BAB, 그리고 BABBA로 바뀌었다. 상근이는 화면의 모든 B는 BA로 바뀌고, A는 B로 바뀐다는 사실을 알게되었다. 버튼을 K번 눌렀을 때, 화면에 A와 B의 개수는 몇 개가 될까? 입력 : 첫째 줄에 K (1 ≤ K ≤ 45)가 주어진다. 출력 : 첫째 줄에 A의 개수와 B의 개수를 공백으로 구분해 출력한다. 풀이) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 li = [[1, 0], [0, 1]] k = int(.. 2022. 2. 22.
[백준] 2748번: 피보나치 수 2 (python) 2748번: 피보나치 수 2 문제 ) 피보나치 수는 0과 1로 시작한다. 0번째 피보나치 수는 0이고, 1번째 피보나치 수는 1이다. 그 다음 2번째 부터는 바로 앞 두 피보나치 수의 합이 된다. 이를 식으로 써보면 Fn = Fn-1 + Fn-2 (n ≥ 2)가 된다. n=17일때 까지 피보나치 수를 써보면 다음과 같다. 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597 n이 주어졌을 때, n번째 피보나치 수를 구하는 프로그램을 작성하시오. 입력 : 첫째 줄에 n이 주어진다. n은 90보다 작거나 같은 자연수이다. 출력 : 첫째 줄에 n번째 피보나치 수를 출력한다. 풀이) 1 2 3 4 5 6 7 8 9 10 11 12 n = .. 2022. 2. 22.