Language
파이썬을 이용해서 순회 알고리즘을 구현해보자 ♻ (feat. DFS, BFS)
파이썬을 이용해서 순회 알고리즘을 구현해보자 ♻ (feat. DFS, BFS)
2019.02.08이전 포스트에서 이진 탐색 트리(Binary Search Tree)를 구현해보았습니다. 트리는 배열이나 스택, 큐등의 자료구조와는 달리 데이터를 직관적으로 살펴보기 어렵습니다. 따라서, 트리를 위한 별도의 순회 알고리즘이 필요합니다. 트리 순회 알고리즘트리 순회 알고리즘은 트리에 저장된 모든 값을 중복이나 빠짐없이 살펴볼 때 사용합니다. 이진 트리의 순회 방법 중 깊이 우선 순회 방법(Depth First Traversal, DFS)으로는 전위 순회(Pre-order Traversal), 정위 순회(In-order Traversal), 후위 순회(Post-order Traversal)가 있으며, 너비 우선 순회 방법(Breadth First Traversal)으로는 레벨 순회(Level-order Tra..
파이썬을 이용해서 이진 탐색 트리 구현하기 🎄
파이썬을 이용해서 이진 탐색 트리 구현하기 🎄
2019.02.08이진 트리(Binary Tree)는 최대 두 개의 자식 노드를 가진느 트리 형태의 자료구조로, 단순히 값을 저장하는 용도보다는 효율적인 탐색 혹은 정렬을 위하여 사용됩니다. 이진 탐색 트리(Binary Search Tree)를 사용하여 주어진 값 혹은 이보다 작거나 큰 값들을 평균 O(logn)의 시간 복잡도로 찾을 수 있으며, 이진 트리의 한 종류인 힙(heap)을 사용한 힙 정렬(heap)은 O(nlogn)의 시간 복잡도를 가집니다. 이진 탐색 트리 구현 이진 탐색 트리(Binary Search Tree)는 이진 트리의 특수한 케이스 중 하나입니다. 이진 트리 중 모든 노드에 대해 왼쪽 자식 노드들의 값이 현재 노드 값보다 작거나 같으며, 오른쪽 자식 노드들의 값이 현재 노드의 값보다 크다는 조건을 ..
[Python] itertools를 이용한 조합
[Python] itertools를 이용한 조합
2019.02.07Python 내장 라이브러리인 itertools는 Python에서 제공하는 자신만의 반복자를 만드는 휼륭한 모듈입니다. 특정 배열에 대하여 순열이나 조합을 만들어 이를 이용하는 문제를 풀 때, 직접 구현해도 되지만, 이 itertools를 이용한다면 효율적으로 반복자를 구할 수 있습니다. product() import itertools itertools.product('ABCD', repeat=2) # 결과: AA AB AC AD BA BB BC BD CA CB CC CD DA DB DC DD 인수: p, q, ... [ 반복 = 1 ] 결과: 중첩된 for loop에 해당하는 데카르트의 곱 permutations() import itertools itertools.permutations('ABCD', ..
[Python] Dictionary(사전) 자료형 : { k : v }의 sort(정렬)
[Python] Dictionary(사전) 자료형 : { k : v }의 sort(정렬)
2019.02.051. Key 값을 정렬 Python의 Dictionary 자료형은 { key: value } 쌍으로 값이 들어가 있다. Dictionary는 Default(기본) 정렬이 Key값을 기준으로 오름차순으로 Key 값을 정렬하는 것이다. fruits \= { 'apple': 2, 'banana' : 1, 'melon' : 0, 'pear' : 2, 'plum' : 1} sorted(fruits) # \['apple', 'banana', 'melon', 'pear', 'plum'\] sorted(fruits.keys()) # \['apple', 'b..
[Python] 정규 표현식(Regular Expression)
[Python] 정규 표현식(Regular Expression)
2019.02.02정규 표현식(Regular Expression)정규 표현식은 특정한 규칙을 가진 문자열의 패턴을 표현하는 데 사용하는 표현식(Expression)으로 텍스트에서 특정 문자열을 검색하거나 치환할 때 흔히 사용된다. 예를 들어, 웹페이지에서 전화번호나 이메일 주소를 발췌한다거나 로그파일에서 특정 에러메시지가 들어간 라인들을 찾을 때 정규 표현식을 사용하면 쉽게 구현할 수 있다. 정규 표현식은 간단히 정규식, Regex 등으로 불리우곤 한다.파이썬에서의 정규 표현식 사용정규식에서 가장 단순한 것은 특정 문자열을 직접 리터럴로 사용하여 해당 문자열을 검색하는 것이다. 예를 들어, 로그 파일에 "에러 1033" 이라는 문자열을 검색하여 이 문자열이 있으면 이를 출력하고 없으면 None을 리턴하는 경우이다. 이러한..
Q. Overriding과 Overloading의 차이점을 설명해주세요.
Q. Overriding과 Overloading의 차이점을 설명해주세요.
2018.12.22Q. Overriding와 Overloading의 차이점을 설명해주세요. Goal Overriding, Overloading의 개념을 설명할 수 있다.Overriding, Overloading의 차이를 이해할 수 있다. Overriding, Overloading의 개념 Overriding란 ● 상위 Class(=부모 Class)의 Method를 하위 Class(=자식 Class)에서 재정의하는 것○ 상속에서 나온 개념 Overloading란 ● 같은 이름의 Method를 여러 개 정의하는 것○ 매개변수의 타입이 다르거나 개수가 달라야 한다.○ return type과 접근 제어자는 영향을 주지 않는다.○ Method Overloading과 생성자 Overloading이 있지만, 둘 다 같은 개념이다. Ov..
Q. Class, Object, Instance의 차이점을 설명해주세요.
Q. Class, Object, Instance의 차이점을 설명해주세요.
2018.12.21Q. Class, Object, Instance의 차이점을 설명해주세요.** Goal Class, Object, Instance의 개념을 설명할 수 있다. Class, Object, Instance의 차이를 이해할 수 있다. Class, Object, Instance의 개념 Class란? 개념 Obejct를 만들어 내기 위한 설계도 혹은 틀 연관되어 있는 Variable와 Method의 집합 Object란? 개념 소프트웨어 세계에 구현할 대상 Class에 선언 된 모양 그대로 생성된 실체 특징 'Class의 Instance'라고도 부른다. Object는 모든 Instance를 대표하는 포괄적인 의미를 갖는다. OOP의 관점에서 Class의 타입으로 선언되었을 때 'Object'..