파이썬 8

알고리즘[Algorithm] | DFS & BFS

DFS/BFS를 알아가기 전에.. 탐색은 많은 양의 데이터 중 원하는 데이터를 찾는 과정이며 DFS/BFS가 이 알고리즘에 속한다. DFS/BFS를 풀기 위해서 알아야 할 몇 가지 자료구조를 먼저 알아보려고 한다. 여기서 자료구조란 데이터를 표현, 관리, 처리하기 위한 구조이다. 자료구조 중에서 스택과 큐가 가장 기초적인 개념으로 자리잡고 있다. 스택(Stack) 나중에 들어온 데이터가 먼저 삭제되는 후입선출 구조의 자료구조이다. 예전 블로그에서 실행 컨텍스트에 대해 개념을 정리하면서 스택/큐 개념도 함께 정리했는데, 당시 그렸던 그림을 첨부한다. 그림처럼 후입 선출임을 알 수 있다. 이를 코드로 구현하려면 입력은 리스트의 가장 뒤쪽에 데이터를 삽입하는 append(), 출력은 리스트의 가장 뒤쪽에 있는..

Study/Algorithm 2023.06.05

알고리즘[Algorithm] | 그리디(Greedy, 탐욕법)

그리디 알고리즘 현재 상황에서 지금 당장 좋은 것만 고르는 알고리즘 즉, 매 순간 가장 좋아 보이는 것을 선택하며, 현재의 선택이 나중에 미칠 영향에 대해서는 고려하지 않는다. 기준에 따라 좋은 것을 선택하는 알고리즘이므로 "가장 큰 순서대로" 또는 "가장 작은 순서대로"와 같은 기준을 제시해준다. 아래는 책에 제공되어 있는 연습 문제인데, 문제는 검색하면 나와있으니 나는 내가 접근한 방식이나 풀이 위주로 글을 작성했다. [이코테] 실전문제 1: 큰 수의 법칙 처음엔 반복문으로 풀이하려고 접근했다가 문제를 계속 살펴보니 굳이 반복문을 사용하지 않고 풀 수 있을 것 같다는 생각이 들어 중간에 풀이를 한번 갈아엎었다. 가장 큰 수를 만들기 위해서는 숫자 배열 중 첫 번째로 큰 수, 두 번째로 큰 수만 필요하..

Study/Algorithm 2023.06.01

파이썬[Python] | 파이썬의 자료형

수 자료형 데이터는 모든 수로 표현할 수 있으며, 일반적으로 정수와 실수가 많이 사용된다. 정수형 양의 정수, 음의 정수, 0으로 이루어진 정수를 다루는 자료형 실수형 소수점 아래의 데이터를 포함하는 자료형 소수부 또는 정수부가 0인 소수는 0을 생략할 수 있다. # 소수부가 0일 때 a = 5. print(a) # 5.0 # 정수부가 0일 때 b = -.7 print(b) # -0.7 E나 e를 이용하여 지수 표현을 할 수 있는데, e 다음에 오는 수는 10의 지수를 의미한다. 1e9 = 10의 9 제곱 컴퓨터 시스템은 수 데이터를 처리할 때 2진수를 이용하는데, 실수의 경우 정확히 표현을 할 수 없다. 만약 0.3 + 0.6을 한다고 할 때 10진수 체계에서는 0.9로 딱 떨어지는데 2진수 체계에서는..

알고리즘[Algorithm] | 알고리즘 복잡도

복잡도 시간 복잡도: 특정한 크기의 입력에 대해 알고리즘이 얼마나 오래 걸리는지 의미 공간 복잡도: 특정한 크기의 입력에 대해 알고리즘이 얼마나 많은 메모리를 차지하는지 의미 동일한 기능을 수행하는 알고리즘이 있다면 일반적으로 복잡도가 낮을수록 좋은 알고리즘 시간 복잡도 빅오(Big-O)표기법을 사용 a = 5 b = 7 print(a + b) 위 소스코드의 연산 횟수는 1이므로 시간 복잡도는 상수 시간인 O(1)이 된다. array = [3, 4, 5, 6] summary = 0 for x in array: summary += x print(summary) 위 소스코드는 4개의 데이터를 차례로 4번 더해준다. 즉, 연산 횟수는 N개의 데이터에 비례함으로 시간 복잡도는 선형 시간인 O(N)이 된다. ar..

Study/Algorithm 2023.05.25

파이썬[Python] 004. 크롤링을 하기 전에.. 라이브러리란?

안녕하세요! 지난 글에서 크롤링에 대해 알려드렸는데요. ( 못보신 분들은 참고해주세요=) ) 파이썬[Python] 003. 크롤링의 정의 저는 모각코에서 파이썬 - 크롤링편 프로젝트를 진행하고 있어요. 프로젝트 설명을 보면서 따라하는건 쉽지만 그것으로 끝내면 완전히 내 것이 되지 않는다는 생각이 들어서 복습을 해보려고 jae-yeong.tistory.com 오늘은 크롤링을 본격적으로 하기 전에 알아야 할 요소를 알려드리려고 합니다. 혹시 '라이브러리'라는 단어를 들어보신 적 있으신가요? 저는 휴대폰 어플을 사용할 때 음.. 주로 음악 어플에서 본 적 있네요! 라이브러리 생성을 해서 원하는 음악을 넣어두고 그 라이브러리를 재생한다면 담아놓았던 노래들이 재생되죠~ 파이썬에서 라이브러리도 비슷한 개념입니다! ..