알고리즘

Fibonacci numbers(피보나치 수)
Fibonacci numbers 위 식과 같이 수를 나열하면(첫 번째는 0) 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, ... 파이썬 재귀함수를 배울 때 재귀함수로 푸는 방법을 배웠었다. def Fibo(n): if n == 0: return 0 elif n == 1 : return 1 else: return Fibo(n-2) + Fibo(n-1) print([Fibo(i) for i in range(12)]) # [0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89] 하지만 프로그래머스에서 런타임 오류가 발생하였다. 그래서 위키백과에서 위 식 외에 피보나치의 급수 공식 을 수정 해서 이 식을 만들어 보았다 저번 등차수열 알고리즘 문제에서 단수 For문 ..
요소 개수 찾기 count() , Counter
string.count() string.count(x, start, end) x : count 할 문자를 입력 start : string 의 시작 위치 인덱스 값 (default = 0) end : string 에서 끝내고 싶은 인덱스(미만) 값 (default = string 끝까지) s = 'apple pie' print(s.count('p')) # 3 print(s.count('p',1,6)) # 2 # end index 입력은 미만 print(s.count('p',2,3)) # 1 n = [1,2,2,3,3,1,1,1,2,4] print(n.count(1)) # 4 print(n.count(2)) # 3 print(n.count(2,3,4)) # 오류 string.count()는 인덱스를 입력 가..
정렬(오름,내림 차순) 및 리스트 요소 순서 뒤집기(reverse,reversed)
정렬 list를 오름,내림 차순으로 정렬 하기 위해서는 여러가지 정렬 알고리즘이(버블 정렬,삽입 정렬 등) 있지만 간단히 파이썬 내장 함수를 정리하고자 한다. 오름차순 파이썬 내장 함수 sort(),sorted() 를 이용하여 간단하게 사용가능 하다. sort() 는 직접 그 리스트를 정렬한다. 꼭 int형이 아니더라도 정렬이 가능 하다. sorted()는 역활은 같지만 정렬된 리스트를 다른 저장 공간에 저장 한다. x = [1,4,5,2,3] y = sorted(x) print(y) #[1, 2, 3, 4, 5] print(x) #[1, 4, 5, 2, 3] y= x.sort() print(y) #None print(x) #[1, 2, 3, 4, 5] x = ['1','4','5','2','3'] y ..

프로그래머스 - Lv1. 두 정수 사이의 합
문제 두 정수 a, b가 주어졌을 때 a와 b 사이에 속한 모든 정수의 합을 리턴하는 함수, solution을 완성하세요. 예를 들어 a = 3, b = 5인 경우, 3 + 4 + 5 = 12이므로 12를 리턴합니다. def solution(a, b): if a > b : a,b = b,a answer = sum([i for i in range(a,b+1) ]) return answer 처음엔 for 문을 활용하여 풀었다. 하지만 실행시간이 엄청 나게 걸리길래 등차수열 합 공식이 생각 났다. def solution(a,l): return (abs(a-l)+1) * (a+l) / 2 # (abs(a-l)+1) = n 즉, 항의 개수 그 식을 만들어 풀어 봤더니 실행 시간이 0,00ms 로 변했다. 식 한번..