본문 바로가기

Python5

[자료구조] 연결 리스트(Linked List) 정리 1. 연결 리스트(Linked List)란?연결 리스트(Linked list)는 데이터를 저장하는 선형 자료구조로써, 각 구성 요소가 노드(Node)로 구성되어 있으며 하나의 노드(Node)에는 데이터가 저장된 부분과 다음 노드를 가리키는 포인터(Pointer)로 구성되어 있습니다.또한 연결 리스트의 시작지점을 가리키는 'Head'와 연결 리스트의 끝을 가리키는 Tail로 구성되어 있습니다.2. 연결 리스트(Linked list)의  종류연결 리스트의 종류는 크게 (1)Singly Linked List, (2)Doubly Linked List, (3)Circular Linked List가 있습니다. 이번 포스트에서는 Singly Linked List와 Doubly Linked List에 대해서만 다뤄보고.. 2024. 11. 10.
[자료구조] 재귀(Recursion) 정리 1. 재귀(Recursion) 이란? 자료구조에서 재귀(recursion)는 함수의 실행 과정에서 자기 자신을 호출하는 함수를 의미합니다. Example : Factorial Function 재귀의 간단한 예시는 팩토리얼(Factorial) 함수를 예로 들 수 있습니다. 팩토리얼 함수를 수식으로 표현하면 다음과 같습니다. $$ f(n) = \begin{cases} 1 & n = 0 \newline n \cdot f(n-1) & else \end{cases} \quad where \ n \in \mathbb{Z}^+$$ 위 수식을 Python으로 구현하면 다음과 같이 구현해 볼 수 있습니다. 2. 재귀 함수 구현 시 주의사항 다음으로는 재귀함수를 작성할 때 반드시 포함되어야 하는 부분은 (1) Base c.. 2024. 2. 16.
[백준] 14500번 - 테트로미노 문제 출처 : https://www.acmicpc.net/problem/14500 14500번: 테트로미노 폴리오미노란 크기가 1×1인 정사각형을 여러 개 이어서 붙인 도형이며, 다음과 같은 조건을 만족해야 한다. 정사각형은 서로 겹치면 안 된다. 도형은 모두 연결되어 있어야 한다. 정사각형의 변 www.acmicpc.net 백준 14500번 - 테트로미노의 풀이와 개인적인 저의 생각을 정리하였습니다. [문제] [입력과 출력] 우선 문제를 읽으면 BFS 혹은 DFS로 접근을 해야겠다는 생각이 들게 됩니다. 여기서 저는 BFS는 주변을 순차적으로 탐색하기 때문에 적절하지 않으므로 DFS를 이용하여 탐색을 해야겠구나! 라고 접근하였습니다. 그렇다면 DFS를 이용하여 접근을 하게 된다면 다음과 같이 코드를 작.. 2023. 6. 21.
Selenium으로 웹사이트(디시인사이드) 크롤링하기 이번 포스트에서는 Selenium으로 국내 온라인 커뮤니티중 하나인 DC Inside(디시인사이드)를 크롤링하는 방법에 대해 정리하고자 합니다. 일반적으로 웹에서 데이터를 가져올 때 해당 사이트에서 제공하는 공식 API가 있으면 가장 좋지만, 그렇지 않은 경우에 request와 BeautifulSoup을 이용해서 크롤링을 진행할 수 있습니다. 하지만 request를 사용하는 경우 sleep()을 사용했음에도 불구하고 접속 차단을 하는 사이트가 존재합니다. 또한 크롤링 타깃 사이트가 동적페이지인 경우, request를 이용하여 동적 페이지를 크롤링 못하는 건 아니지만(예시 : 네이버 데이터랩 크롤링) 개인적으로 다른 사이트에 적용 해 보았을 때 잘 안 되는 경우가 있었습니다. 이러한 경우에는 request.. 2023. 4. 15.
[Python] 가상환경(Virtual Environment) 세팅하기 어느 날 평화롭게 코드를 짜던 도중 예상치 못한 오류가 발생했다. 에러의 내용을 살펴보면 새롭게 설치한 라이브러리가 하나 있는데, 해당 라이브러리를 설치하는 과정에서 기존에 설치한 라이브러리의 버전을 바꾸게 되었고, 그 결과로 기존에 깔려있던 다른 라이브러리와 버전 호환이 안된다는 내용이었습니다..ㅜㅜ 지금까지 그냥 하나의 환경에서 잘 쓰고 있던 나에게는 당장 급하게 가상 환경을 세팅 해야만 했습니다. 그래서 이왕 가상 환경을 세팅하는 겸, 나중에 또 찾아볼것이 명확하기에 이참에 정리 해 보고자 합니다. 본 포스트에서 다루는 내용은 다음과 같습니다. 가상환경 생성 및 실행 (종료 포함) 가상환경 복사 설치한 가상환경 목록 확인 가상환경 삭제 1. 가상환경 생성 및 실행(종료) 새로운 가상환경을 만들기 위.. 2021. 8. 4.