본문 바로가기

Problem Solving

(3)
Do it! / 챕터 4 스택과 큐 스택과 큐는 대표적인 자료구조들이며 이들은 데이터를 임시적으로 저장 할 때 많이 쓰인다. 스택 (Stack) 스택은 임시적으로 데이터를 저장하기 위한 자료구조이며 후입선출 (LIFO; Late In First Out) 구조로 이루어져 있다. 말 그대로 블럭을 쌓는다고 생각하면 간편하다. 스택 관련 용어 정리 푸시 (push) : 데이터를 스택에 입력하는 행동 팝 (pop) : 데이터를 스택에서 빼내는 행동 꼭대기 (peek) : 스택의 꼭대기에 있는 데이터를 확인 하는 행동 스택 포인터 (Stack Pointer ; ptr) : 스택이 어디까지 차있는지 나타내는 정숫값 스택 크기 (capacity) : 스택이 가질 수 있는 최대 데이터 갯수 스택 from typing import Any class Fix..
Do it! / 챕터 3 검색 알고리즘 챕터 1과 2는 파이썬의 관한 기본 지식들이라 이미 파이썬을 다룰 줄 아는 필자는 과감히 스킵해버렸다. 최대한 빨리 중급으로 넘어가 제대로 된 문제 풀이를 해보고 싶어서 해당 교재는 할수 있는 한 빨리 커버 해볼 생각이다. 선형 검색 (Linear Search) 선형 검색은 주어진 배열에서 인덱스 값 0 부터 -1 까지 일일이 모든 배열의 원소들을 훑으며 키를 찾는 검색 알고리즘이다. 모든 배열의 원소를 봐야하기 때문에 시간 복잡도는 O(n) 으로 상당히 느린 편이다. 기본 선형 검색 from typing import Any, Sequence def seq_search(a: Sequence, key: Any) -> int: #O(1) i = 0 #O(n) while True: #O(n) if i == l..
PS 공부를 시작하며... 왜 PS 공부를 하는가? 필자는 머신러닝 엔지니어를 꿈꾸는 개발자 지망생이다. 그렇기 때문에 많은 사람들이 인공지능 공부가 아닌 알고리즘 공부를 시작하는 것에 대해 많은 의구심을 품는다. 하지만 개발자를 꿈꾸며 여러 차례 관련 정보들을 검색해본 결과 어느 회사를 지원하든 개발자로 지원하는 경우 코딩 테스트는 무조건 치기 마련이다. 물론 코딩 테스트 외에도 알고리즘과 자료구조는 컴공 전공의 기본 중에 기본이라고 익히 들어서 미리미리 기본을 다져두고 싶다는 생각이 가장 크긴 했다. 나중에 머신러닝 쪽으로 취업이 안되거나 개발 공부를 더 하다가 내 희망 직종이 바뀔 수도 있는 일이다. 기본을 잘 다져두면 추후에 진로 변경에서도 원활할 것이기 때문에 현재 내가 지망하는 진로와는 길이 다르지만 PS 공부를 일찌감..