[백준/11179] 2진수 뒤집기
·
PS/BOJ&Programmers
이 문제는 2진수 -> 10진수 변환과 10진수 -> 2진수 변환 모두를 구현해야 하는 문제이다. 파이썬 내장 함수와 문자열 인덱싱을 통해 쉽게 구현할 수도 있지만, 직접 코드를 작성해보았다. 💻 최종 코드 n = int(input()) b = [] x = 0 ans = [] c = 0 while n != 0: if n % 2 == 0: b.append('0') else: b.append('1') n //= 2 # 뒤에서부터 append 되니까 어차피 뒤집혀 나옴 s = ''.join(b) for i in range(len(s)-1,-1,-1): x = int(s[i]) * 2 ** c ans.append(x) c += 1 print(sum(ans)) while 문은 10진수를 이진수로 변환한 코드이다...
[백준/2747] 피보나치 수 with 동적 계획법
·
PS/BOJ&Programmers
이 내용은 알고리즘 수강 시간에 배웠던 내용이라 눈치를 챌 수 있었다. def fibo(n): if n == 0: return 0 elif n == 1 or n == 2: return 1 else: result = fibo(n-1) + fibo(n-2) return result print(fibo(int(input()))) 단순히 이렇게 재귀형식으로 피보나치 수열을 만들 수 있지만, 이렇게 되면 fibo(10)을 구하기 위해 fibo(9)와 fibo(8)을 구해야 한다. fibo(9)를 구한 다음, fibo(8)을 구하려면 다시 처음부터 구해야 한다. 따라서 시간 복잡도는 T(n) = T(n-1) + T(n-2) 결국 T(n) >= 2^n/2T(1)으로, 지수 시간이 걸리게 된다. 😱 이를 해결하기 위해..
sebinChu
'수학' 태그의 글 목록