목록분류 전체보기 (96)
코딩 성장기
보통 데이터 사이언스 분야에서는 R 또는 파이썬을 주로 사용하는데, 우리는 파이썬을 이용한 크롤링에 대해서 공부할 것이다. 크롤링의 기초가 되는 모듈 중 하나인 numpy에 대해 다뤄보도록 할 것이다. numerical python의 줄임말로, 숫자와 관련된 파이썬 도구이다. 파이썬의 리스트(list)와 유사한 numpy array의 element 계산을 편리하게 할 수 있게 돕는다. 파이썬의 리스트와 유사하게 생겼다.(똑같이 생겼다고 봐도 무방!) 왜냐하면 리스트에 numpy 모듈의 numpy.array 함수를 불러와서 사용하기 때문! 예) list_1 = [1, 2, 3, 4, 5] array_1 = numpy.array(list_1) print(array_1) type(array_1) 결과 [1, ..
재귀적으로 문제를 푼다? ->같은 형태의 더 작은 문제를 풀고(부분 문제), 부분 문제의 답을 이용해서 기존 문제를 푸는것 예) 팩토리얼(!) 4!을 구하기 위해서는 4! = 4 x 3 x 2 x 1 ☞ 3! 값이 필요하다. = 3! 3! = 3 x 2 x 1 ☞ 2! 값이 필요하다. = 2! 2! = 2 x 1 ☞ 1! 값이 필요하다 = 1! 1! = 1 x 0 = 0! 0 ! = 1 4!을 구하기 위해 필요한 부분문제들이 모두 풀렸으므로, 각 결과들을 역순으로 이용하여 값을 도출한다. 0! = 1 임을 이미 알고 있으므로, 재귀함수에 설정을 해놓고 n = 0 인 경우에는 값이 1이 도출되도록 한다. n = 0 인 경우, n! = 1 -> base case (가장 단순한 계산. 가장 마지막에 남는 기초..
정렬은 알고리즘의 기초. 정렬을 배우면서 문제 해결의 기초를 다질 수 있다. 모든 개발자가 알아야 하는 가장 기본적인 알고리즘! sorted 나 .sort() 함수가 있어도 알아야 한다. 이걸 모른다면 개발자라고 말을 할 수 없을정도.(부끄러운 사실!) 정렬이란? 리스트의 원소들을 특정 순서로 정리하는 것 예)오름차순 정리, 내림차순 정리, 가나다 순으로 정리 선택정렬(Selection Sort) :가장 먼저 생각나는 자연스러운 기본 알고리즘 각 위치에 어떤 값이 들어갈지 찾는다. 리스트를 순서대로 보면서 원하는 값을 찾아낸다 [2 4 5 1 9] 현재의 최솟값은 맨 앞의 요소인 2이다. 2와 4를 비교했을때 2가 작으므로 현재의 최솟값은 2로 유지된다. 현재 최솟값인 2와 5를 비교 했을때, 2가 작으..
선형탐색 알고리즘(Linear Search Algorithm) :맨 처음부터 하나하나 살펴보는 알고리즘 예) 40이라는 숫자를 찾을 때 [1 3 8 11 12 13 19 21 31 34 40 49 53] 위와 같은 숫자열이 있을때 맨 왼쪽에 있는 ‘1’ 부터 시작 하여 3 8 11 12… 차례차례 확인을 하여 ‘40’ 이 나올때 까지 확인 작업을 반복한다. 40이 나오면 중단. 이진탐색 알고리즘(Binary Search Algorithm) :중간값에 먼저 접근하여, 찾으려는 값과 중간값을 비교 후 중간값 기준 왼쪽 or 오른쪽을 선택하여 절반의 자료들을 확인하는 알고리즘 예)40 이라는 숫자를 찾을 때 [1 3 8 11 12 13 19 21 31 34 40 49 53] 중간값을 찾는다. 위의 숫자열에서는..
알고리즘 이란? 어떠한 문제를 해결하기 위한 과정, 방법 좋은 알고리즘을 만들기 위해서는, 단순 문제 해결을 넘어, ‘더 효율적으로 문제를 해결하는’ 알고리즘을 만들도록 노력해야 한다. 프로그래밍에서 알고리즘 = 정확하고 효율적으로 작동하는 코드(를 작성하는 방식) 프로그래밍에 대한 장벽이 낮아지고 있어, 좋은 개발자가 되기 위해서는 좋은 알고리즘을 구현하여 차별성을 가져야 한다. 뿐만 아니라, 대부분의 기업들에서 개발자 입사시험에서 알고리즘 문제를 필수적으로 제시하고 있으므로 반드시 공부가 필요하다. 이해하기 쉽게 일상적인 것에서 예시를 들면, 1부터 10까지 더하는 코드 작성 *좋지 못한 알고리즘을 가진 코드 :1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 *좋은 알고리즘을 가..
내가 작성한 파이썬 팰린드롬 코드 def is_palindrome(word): original = [] # original = list(word) 로 간단히 리스트 생성. '1'개의 문자열만됨! list_w = [] for character in word: list_w.append(character) original.append(character) for i in range(len(list_w)//2): tempt = list_w[i] list_w[i] = list_w[len(list_w) - (i+1)] list_w[len(list_w) - (i+1)] = tempt if list_w == original: return True else: return False 모범 답안 파이썬 팰린드롬 코드 def ..