반응형

파이썬 131

[파이썬 알고리즘 인터뷰] 20. 유효한 괄호

이 포스팅은 파이썬 알고리즘 인터뷰를 공부하면서 정리한 내용입니다. 출처 : 파이썬 알고리즘 인터뷰 코드 출처 : 파이썬 알고리즘 인터뷰 깃허브 20. 유효한 괄호 리트코드 20. Valid Parentheses 문제입니다. leetcode.com/problems/valid-parentheses/ 풀이 매핑 테이블을 만들어 놓고 테이블에 존재하지 않으면 푸시하고, 팝했을 때 결과가 일치하지 않으면 False를 리턴하도록 구현한 풀이입니다. def isValid(self, s): table = { ')':'(', ']':'[', '}':'{', } stack = [] for char in s: if char not in table: stack.append(char) elif not stack or tabl..

Python/알고리즘 2021.02.21

[자료구조] 스택을 알아보고 연결 리스트로 스택 ADT 구현하기

이 포스팅은 파이썬 알고리즘 인터뷰를 공부하면서 정리한 내용입니다. 출처 : 파이썬 알고리즘 인터뷰 스택(Strack) 스택은 LIFO(Last In First Out, 후입선출)로 처리됩니다. 잔뜩 쌓아둔 접시를 떠올려보겠습니다. 마지막에 쌓은 접시가 맨 위에 놓일 것입니다. 그리고 가장 마지막에 쌓은 접시를 제일 먼저 꺼내게 됩니다. 스택도 마찬가지로 가장 마지막에 쌓은 데이터를 제일 먼저 꺼냅니다. 파이썬은 스택 자료형을 별도로 제공하지는 않지만, 리스트가 사실상 스택의 모든 연산을 지원합니다. 스택은 다음과 같은 2가지 주요 연산을 지원하는 요소의 컬렉션으로 사용되는 추상 자료형입니다. push(): 요소를 컬렉션에 추가합니다. pop(): 아직 제거되지 않은 가장 최근에 삽입된 요소를 제거합니다..

Python/알고리즘 2021.02.19

[파이썬 알고리즘 인터뷰] 15. 역순 연결 리스트

이 포스팅은 파이썬 알고리즘 인터뷰를 공부하면서 정리한 내용입니다. 출처 : 파이썬 알고리즘 인터뷰 코드 출처 : 파이썬 알고리즘 인터뷰 깃허브 15. 역순 연결 리스트 리트코드 206. Reverse Linked List 문제입니다. leetcode.com/problems/reverse-linked-list/ 풀이 node가 node.next로 이동함과 동시에 node.next를 prev로 연결합니다. def reverseList(self, head): rev, node = None, head while node: rev, rev.next, node = node, rev, node.next return rev

Python/알고리즘 2021.02.15

[자료구조] 이중 연결 리스트를 파이썬으로 구현하기

저번 포스팅에서는 단일연결리스트를 파이썬으로 구현해보았습니다. 이번에는 이중연결리스트를 파이썬으로 구현해보도록 하겠습니다. [자료구조] 연결 리스트를 알아보고 파이썬으로 구현하기 이 포스팅은 파이썬 알고리즘 인터뷰를 공부하면서 정리한 내용입니다. 출처 : 파이썬 알고리즘 인터뷰 연결 리스트(Linked List) 연결 리스트는 데이터 요소의 선형 집합으로, 데이터의 순서 deep-learning-study.tistory.com 이중 연결 리스트(Doubly Linked List) # Doubly Linked List Implement # define ListNode class ListNode: def __init__(self, x): self.val = x self.next = None self.prec..

Python/알고리즘 2021.02.13

[자료구조] 연결 리스트를 알아보고 파이썬으로 구현하기

이 포스팅은 파이썬 알고리즘 인터뷰를 공부하면서 정리한 내용입니다. 출처 : 파이썬 알고리즘 인터뷰 연결 리스트(Linked List) 연결 리스트는 데이터 요소의 선형 집합으로, 데이터의 순서가 메모리에 물리적인 순서대로 저장되지 않습니다. 연결 리스트는 배열과 함께 가장 기본이 되는 대표적인 선형 자료구조 중 하나로 다양한 추상 자료형 구현의 기반이 됩니다. 동적으로 새로운 노드를 삽입하거나 삭제하기가 간편하며, 연결 구조를 통해 물리 메모리를 연속적으로 사용하지 않아도 되기 때문에 관리가 쉽다는 장점이 있습니다. 연결 리스트는 배열과는 달리 특정 인덱스에 접근하기 위해서는 전체를 순서대로 읽어야 하므로 상수 시간에 접근할 수 없습니다. 즉 탐색에는 O(n)이 소요됩니다. 반면, 시작 또는 끝 지점에..

Python/알고리즘 2021.02.13

[자료구조] 배열 - 동적 배열, 정적 배열

이 포스팅은 파이썬 알고리즘 인터뷰를 공부하면서 정리한 내용입니다. 출처 : 파이썬 알고리즘 인터뷰 배열 배열은 값 또는 변수 엘리먼트의 집합으로 구성된 구조로 하나 이상의 인덱스 또는 키로 식별됩니다. 자료구조는 크게 메모리 공간 기반의 연속 방식과 포인터 기반의 연결 방식으로 나뉩니다. 배열은 연속 방식의 가장 기본이 되는 자료형 입니다. 연결 방식의 가장 기본이 되는 자료형은 연결 리스트 입니다. 추상 자료형의 실제 구변 대부분은 배열 또는 연결 리스트를 기반으로 합니다. 예를 들어 스택은 연결 리스트로 구현하고, 큐는 배열로 구현하는 식 입니다. 물론 반대의 경우도 가능합니다. 배열의 장점으로는 어느 위치에나 O(1)에 조회가 가능하다는 장점이 있습니다. C 언어에서의 배열 - 정적 배열 C언어에..

Python/알고리즘 2021.02.10

[Object Detection] IoU(Intersection over Union)를 이해하고 파이토치로 구현하기

안녕하세요 이번 포스팅에서는 IoU에 대해 알아보도록 하겠습니다. IoU(Intersection over Union)은 무엇일까요? Intersection over Union은 object detector의 정확도를 측정하는데 이용되는 평가 지표입니다. Object detection 논문이나 대회에서 IoU 평가 지표를 쉽게 볼 수 있습니다. 알고리즘이 출력한 예측 바운딩 박스는 IoU를 이용해서 평가될 수 있습니다. IoU를 적용하기 위해서는 두 가지가 필요합니다. 1. ground-truth bounding boxes(testing set에서 object 위치를 labeling 한것) 2. prediceted bounding boxes (model이 출력한 object 위치 예측값) 이 두가지가 있으..

[PyTorch] 2. 예제로 배우는 파이토치 - 자동미분(Autograd)

공부 목적으로 PyTorch 튜토리얼 홈페이지를 변역해보았습니다. Learning PyTorch with Examples — PyTorch Tutorials 1.7.0 documentation Learning PyTorch with Examples Author: Justin Johnson This tutorial introduces the fundamental concepts of PyTorch through self-contained examples. At its core, PyTorch provides two main features: An n-dimensional Tensor, similar to numpy but can run on GP pytorch.org 예제로 배우는 파이토치 - Learni..

[OpenCV 딥러닝] OpenCV에서 제공하는 DNN 모듈로 GoogLeNet 모델을 실행하여 영상 인식하기 - cv2.dnn.readNet

GoogLeNet 영상 인식 저번 포스팅에서는 CNN 모델을 OpenCV DNN 모듈로 실행하는 것을 해보았습니다. 이번에는 OpenCV DNN 모듈을 이용해서 GoogLeNet 모델을 실행하는 것을 해보겠습니다. OpenCV에서는 GoogLeNet 모델을 학습을 시키는 것이 아니라 미리 학습해둔 파일을 받아와서 추론을 진행할 수 있습니다. 학습이 어떻게 진행되었는지를 알아야 DNN 모듈에 적절한 입력값을 설정할 수 있습니다. GoogLeNet의 입력 : 224x224, BGR 컬러 영상, 평균 값 = (104,117,123) GoogLeNet의 출력 : 1x1000 행렬, 1000개 클래스에 대한 확률값 미리 학습된 GoogLeNet 학습 모델 및 구성 파일 다운로드 Model Zoo에서 미리 학습되어..

[OpenCV 딥러닝] 미리 학습된 파일을 OpenCV DNN 모듈로 딥러닝 실행하기 - cv2.dnn.readNet

OpenCV DNN(Deep Neural Network) 모듈 미리 학습된 딥러닝 파일을 OpenCV DNN 모듈로 실행할 수 있습니다. 순전파(foward), 추론(inference)만 가능하며 학습은 지원하지 않습니다. 1. 네트워크 불러오기 - cv2.dnn.readNet OpenCV로 딥러닝을 실행하기 위해서는 우선 cv2.dnn_Net 클래스 객체를 생성해야 합니다. 객체 생성에는 훈련된 가중치와 네트워크 구성을 저장하고 있는 파일이 필요합니다. cv2.dnn.readNet(model, config=None, framework=None) -> retval • model: 훈련된 가중치를 저장하고 있는 이진 파일 이름 • config: 네트워크 구성을 저장하고 있는 텍스트 파일 이름, config..

반응형