본문 바로가기

반응형

코딩/Algorithm, 자료구조

[Python/파이썬] 자료구조 - 링크드리스트(Linked List) 1 이번에는 링크드리스트(Linked List) 혹은 연결 리스트라고 불리우는 자료구조에 대해서 포스팅해보려 한다. 이전 배열 관련 포스팅에서는 배열은 인덱스를 통해 빠른 접근이 가능한게 장점이지만, 처음에 최대 크기를 정해놔야 해서 데이터를 추가/삭제하는 과정이 어렵다고 하였다.(파이썬 말고 C 해당) (참고링크 :2021.05.23 - [코딩/Algorithm, 자료구조] - [Python/파이썬] 자료구조 - 배열(Array)) 링크드리스트는 배열의 단점을 개선하기 위해 생긴 자료구조라고 한다. 참고로 링크드리스트는 C언어에서의 중요한 데이터 구조였는데 파이썬은 자료형 중 리스트가 이 링크드리스트의 모든 기능을 지원한다.(배열 이어붙이기, 중간 삽입, 삭제 등) 1. 링크드리스트(Linked List).. 더보기
[Python/파이썬] 자료구조 - 큐(Queue)와 스택(Stack) 이전 포스팅에서는 배열(Array)에 대해서 공부했다. 그 밖의 대표적인 자료구조로는 스택과 큐가 있다. 보통 스택과 큐라고 하면 LIFO, FIFO로 설명한다. 스택은 LIFO(Last In, First Out), 큐는 FIFO(First In, First Out)이라고 하고 한국어로는 후입선출, 선입선출을 의미한다. 즉, 데이터를 쌓아서 어떻게 출력할 것인가에 대한 자료구조이다. 1. 파이썬과 큐(Queue) 서두에서 설명했지만 가장 먼저 입력 된 데이터가 가장 먼저 출력되는 구조이다. FIFO(First In, First Out)라고 부르기도 하며 반대로 LILO(Last In, Last Out)이라고 설명하기도 한다. 현실세계에서 식당에서 줄을 서는 경우를 큐의 예시로 들 수 있다. 먼저 줄을 선.. 더보기
[Python/파이썬] 자료구조 - 배열(Array) 자료구조는 대량의 데이터를 효율적으로 관리할 수 있는 데이터 구조를 의미한다. 자료구조의 대표적인 예는 학교 학생 관리나 회사의 직원 관리를 예로 들 수 있을 것 같다. 회사에서 직원들을 관리하는 데이터를 생각해볼 수 있다. 어떤 회사의 직원이라면 무조건 사번이 부여된다. 어떤 직군인가에 따라 부여되는 코드도 달라지고 자신의 직급, 팀 등으로 분리하여 관리된다. 데이터를 관리할 때 어떤 구조로 관리하느냐에 따라 효율이 달라진다고 하니 SW를 개발하는데 있어서 매우 중요한 부분이다. 대표적인 자료구조에는 배열, 스택, 큐, 연결리스트, 해쉬 테이블, 힙 등이 존재한다. 앞으로 대표적인 자료구조에 대한 공부를 하려고 한다. 파이썬이 가장 쉽고 빠르게 자료구조와 알고리즘을 익힐 수 있다고 하니 비전공자 입장에.. 더보기
[Python/파이썬] 문자열 처리 - Palindrom(팰린드롬) ※ 이 글의 작성자는 SW 비전공자입니다. ※ 개인적으로 공부하고 있는 내용을 정리하고 있는 글로 잘못 된 부분이 있다면 댓글을 남겨주세요. 1. 팰린드롬 'Palindrome'(팰린드롬) 이란 어떤 단어나 특정 문장을 뒤집어도 같은 말이 되는 것을 말한다. 우리나라에서는 '회문'이라는 단어로도 사용된다고 한다. 예를들면 '일요일', '스위스'같은 단어가 있다. 알고리즘 인터뷰 책에서는 첫 문제로 이 팰린드롬을 다루고있어 공부한 내용을 정리해보았다. 2. 'Valid Palindrome' 문제 '알고리즘 인터뷰'에서는 '리트코드'라는 사이트의 문제들을 가지고 풀이 및 해설한다. 아래는 리트코드의 'Valid Palindrome'의 문제이다. (리트코드 - Valid Palindrome : https://.. 더보기
[Python/파이썬]map, filter, list comprehension ※ 이 글의 작성자는 SW 비전공자입니다. ※ 개인적으로 공부하고 있는 내용을 정리하고 있는 글로 잘못 된 부분이 있다면 댓글을 남겨주세요. 이전편 : 2021.05.02 - [코딩/Algorithm & 코딩테스트] - [Python/파이썬]Indent, Naming, Type hint 파이썬 알고리즘 인터뷰 책을 보고 쓰는 포스팅 2편. 이번편에서는 map, filter, list comprehesion에 대해 정리한다. map, filter를 알기 전에 lambda를 먼저 이해해야해서 정리해보았다. 1. lambda -. 이름 없는 함수 정의(def와 다름) -. 람다함수의 장점은 코드가 간결하고 메모리가 절약 된다고 함(메모리가 절약되는 부분은 나중에 다시 확인예정) -. 내가 참고하는 자료에는 d.. 더보기
[Python/파이썬]Indent, Naming, Type hint '파이썬 알고리즘 인터뷰'라는 책을 구입하였다. 앞으로는 공부한 내용을 정리하여 포스팅하고자 한다. 이 책을 공부하는 목적은 알고리즘 공부와 파이썬 기본적인 실력을 향상시키고자 위함이다. 1. Indent(들여쓰기) 파이썬의 개발은 PEP(Python Enhancement Proposals) Process를 통해 진행된다고 한다. PEP는 순서대로 번호가 부여되어있고 파이썬에 대한 코딩 가이드를 제시한다. 책에서는 PEP8에 대한 내용을 언급하고 있는데 그 내용 중 하나가 Indent(들여쓰기)이다. (Python PEP8 : www.python.org/dev/peps/pep-0008/) 1) 파이썬의 PEP8에 따라 들여쓰기는 4칸 공백을 원칙으로 한다. 아래와 같이 for문 등 단락이 구분되어야 할 .. 더보기

반응형