반응형

Python 6

[Algorithm] leetcode: Validate Binary Search Tree (python)

주어진 Binary Search Tree가 유효한지를 확인하는 알고리즘입니다. Binary Search Tree는 하나의 root node가 존재할 경우 왼쪽에 있는 모든 노드는 해당 node보다 값이 작아야 하고, 오른쪽에 있는 모든 노드는 root node보다 값이 커야합니다. 때문에 바로 이전의 노드의 값과 비교하여 왼쪽이라면 이전 노드의 값보다 작은 지를 비교하고, 오른쪽으로 가게 되면 이전 노드의 값보다 큰지를 비교하면 됩니다. 하지만 만약 아래와 같은 케이스라면 어떨까요? 3 / \ 1 5 / \ 2 6 2은 5보다 작지만, 5 이전의 node인 3보다도 값이 작게 됩니다. 이는 오른쪽에 있는 node는 모두 기준이 되는 node보다 값이 커야 한다는 rule을 벗어납니다. 이러한 경우는 이전..

[Python] 가상 환경에 대한 이해: pyenv, virtualenv, anaconda

파이썬은 다양한 편리한 패키지들을 지원한다. 특히 Data Science와 관련된 수많은 모듈들을 지원하는데, 이것들은 파이썬이 지금 세계에서 가장 인기 있는 언어 중 하나로 자리매김을 하는데에 큰 역할을 하였다. 하지만 대부분의 개발환경이 그렇듯, 파이썬에서도 사소한 모듈들의 버전 차이로 인해 에러가 발생하는 경우가 있다. 때문에 각 패키지들 간의 버전 간의 호환성을 유지하는 것은 매우 중요한 일이다. 하지만 매번 프로젝트를 진행할 때마다 root에 설치되어있는 다양한 파이썬 패키지들 버전을 새로 설치하고 변경한다면 매우 비효율적인 일이 될 것이다. 그래서 사용하게 되는 것이 바로 가상 환경이다. 가상 환경은 말 그대로 가상의 파이썬 공간이다. 즉, 분리되어진 가상의 공간에 프로젝트마다 필요한 파이썬 ..

Language/Python 2019.11.11 (3)

[Python] Dequeue 사용하기

큐는 어떤 자료구조인가? 큐는 자료의 선입선출, FIFO(First-In-First-Out)을 보장하는 자료구조이다. 흔히 줄을 서 있는 사람들을 생각하면 쉽게 이해할 수 있다. 먼저 줄을 선 사람이 먼저 줄에서 벗어나는 것과 같다. Reference https://www.youtube.com/watch?v=W3jNbNGyjMs deque 객체 deque는 스택과 큐를 합친 자료구조이다. 가장자리에 원소를 넣거나 뺄 수 있다. 메서드 설명 deque(iterable, [, maxlen]) 초기화 함수이다. iterable(리스트 등)을 인자로 건내면 이를 deque화 시켜준다. append(x) x를 덱의 오른쪽에 삽입한다. popleft() 덱의 가장 왼쪽에 있는 원소를 덱에서 제거하고, 그 값을 리턴..

Language/Python 2019.10.24

[Error Log]Python: No module named _tkinter에 관한 이슈

Issue 설명 _tkinter는 Python의 GUI 모듈이다. 그런데 간혹 Mac이나 Linux에서 모듈을 설치했음에도 tkiner를 찾을 수 없다는 에러가 뜰 때가 있다. 에러명은 다음과 같다. error: ImportError: No module named _tkinter backend 변경해보기 mac에서의 경우 기본 backend가 TkAgg로 설정되어있지 않아서 에러가 난다. 그럴 경우에 스크립트상에 다음 코드를 추가해준다. import matplotlib matplotlib.use(“TkAgg”) 매번 코드를 추가하기 귀찮으므로 bash상에 설정을 바꾸어주는 방법도 있다. echo "backend: TkAgg" >> ~/.matplotlib/matplotlibrc 여기서 말하는 backen..

Error Log 2019.10.11

[Python] Code convention

convention 이란? code convention이란 코드를 짤 때 어떻게 코드를 짤지 다수가 합의한 약속이다. code convention을 지키지 않는다고 해서 에러가 나는 것은 아니지만, 팀 프로젝트에서 통일된 코드는 읽기가 쉽고 유지보수 측면에서 뛰어나다. 아래는 code convention을 지킨 것과 지키지 않은 것들인데 모두 같은 결과 값을 출력한다. 변수를 만들 때에는 = 양옆으로 띄어쓰기를 하자 O : my_list = [] X : my_list=[] 상수는 대문자로 만들자 O: MY_CONSTANT = 300 X: myconstant = 300 주석을 쓸 때에는 # 뒤에 공백 문자를 하나 넣자 O: # 2를 곱한다 X: #2를 곱한다 코드로 개성을 드러내지 말자. conventio..

Language/Python 2019.10.10

[Python] Stack 사용하기

파이썬에서의 스택 = list를 사용 파이썬은 스택 자료구조는 따로 제공하지 않는다. 다만 기본 클래스인 list를 통해 스택을 흉내 낼 수 있다. 스택은 어떤 자료구조인가요? 스택은 가장 나중에 들어온 자료가 가장 먼저 처리되는 LIFO(Last-In-First-Out) 자료구조이다. 구멍이 하나밖에 없는 병이라고 생각하면 이해하기 쉽다. Reference https://www.youtube.com/watch?v=whVUYv0Leg0 스택이 지원하는 operation 스택은 다음 operation을 지원해야 한다. Operation 구현 Time Complexity - Average Case Pop item my_list.pop O(1) Push item my_list.append O(1) Stack ..

Language/Python 2019.10.09
반응형