파이썬
-
학습목표 정규표현식(re)에 대한 이해 및 숙지 정규표현식이란? regular expression 특정 패턴에 상응하는 문자열을 '검색', '치환', '제거' 하는 기능을 가짐 정규표현식의 도움없이도 패턴을 찾는 작업(Rule 기반)은 불완전하거나, 작업의 cost가 높음 ex) 이메일 형식 판별, 전화번호 형식 판별, 숫자로만 이루어진 문자열 등 raw string 문자열 앞에 'r'이 붙으면 해당 문자열이 구성된 그대로 문자열로 반환한다. a = 'abcdef\n' #escape 문자열 print(a) ''' abcdef ''' b = r'abcdef\n' print(b) ''' abcdef\n ''' escape string이란 escape sequence를 따르는 문자들로서 다음 문자가 특수문자임..
[Python] 정규표현식과 re모듈 사용법학습목표 정규표현식(re)에 대한 이해 및 숙지 정규표현식이란? regular expression 특정 패턴에 상응하는 문자열을 '검색', '치환', '제거' 하는 기능을 가짐 정규표현식의 도움없이도 패턴을 찾는 작업(Rule 기반)은 불완전하거나, 작업의 cost가 높음 ex) 이메일 형식 판별, 전화번호 형식 판별, 숫자로만 이루어진 문자열 등 raw string 문자열 앞에 'r'이 붙으면 해당 문자열이 구성된 그대로 문자열로 반환한다. a = 'abcdef\n' #escape 문자열 print(a) ''' abcdef ''' b = r'abcdef\n' print(b) ''' abcdef\n ''' escape string이란 escape sequence를 따르는 문자들로서 다음 문자가 특수문자임..
2023.01.03 -
1. Greedy Algorithms다양한 최적화 문제들 중에서 최선의 선택을 결정하기 위한 방법으로 다이나믹 프로그래밍(동적계획법)을 사용하는 것은 다소 지나친 행동일 수 있습니다. 그렇기 때문에 더 단순하고 효율적인 알고리즘을 택해야 하는데, 그러한 관점에서 그리디 알고리즘(Greedy Algorithm)은 항상 그 순간에 최선으로 보이는 선택을 하는 알고리즘으로, 이는 내가 한 선택이 globally optimal solution(결과적으로 최선의 선택)을 이끌기 희망하는 locally optimal choice(당장의 최선의 선택)을 만들어 내는 알고리즘입니다. 그리디 알고리즘에 대해 요약을 한 내용은 다음과 같습니다.현재 상황에서 가장 좋아보이는 선택을 한다.local optimum(극댓값)(..
[자료구조와 알고리즘 | 파이썬] Greedy Algorithms(그리디 알고리즘)1. Greedy Algorithms다양한 최적화 문제들 중에서 최선의 선택을 결정하기 위한 방법으로 다이나믹 프로그래밍(동적계획법)을 사용하는 것은 다소 지나친 행동일 수 있습니다. 그렇기 때문에 더 단순하고 효율적인 알고리즘을 택해야 하는데, 그러한 관점에서 그리디 알고리즘(Greedy Algorithm)은 항상 그 순간에 최선으로 보이는 선택을 하는 알고리즘으로, 이는 내가 한 선택이 globally optimal solution(결과적으로 최선의 선택)을 이끌기 희망하는 locally optimal choice(당장의 최선의 선택)을 만들어 내는 알고리즘입니다. 그리디 알고리즘에 대해 요약을 한 내용은 다음과 같습니다.현재 상황에서 가장 좋아보이는 선택을 한다.local optimum(극댓값)(..
2022.12.31 -
1. Dictionary and Copy in Python 그래프는 자료구조의 꽃이라 불릴 정도로 굉장히 중요하고 그 만큼 어려우며 대부분의 코딩테스트의 문제 중에서 킬러 문제를 담당하는 문제입니다. 그렇기 때문에 이를 제대로 이해해 보기 위해 파이썬의 개념을 먼저 익혀보도록 하겠습니다. 만약 파이썬 개념에 대해서 잘 아시는 분이시라면 중반부로 넘어가셔도 좋습니다! Python Dictionary (파이썬 딕셔너리) 우리가 많이 쓰는 리스트 자료구조에는 순서가 존재했습니다.(ordered) 하지만 딕셔너리는 순서가 없는 item의 모음으로 각 item이 key/value 쌍을 갖습니다. (즉, 순서가 없다! - unordered) Dictionary is mutable(변경 가능) and iterable..
[자료구조와 알고리즘 | 파이썬] Graphs - 그래프 자료구조(+약간의 python 개념)1. Dictionary and Copy in Python 그래프는 자료구조의 꽃이라 불릴 정도로 굉장히 중요하고 그 만큼 어려우며 대부분의 코딩테스트의 문제 중에서 킬러 문제를 담당하는 문제입니다. 그렇기 때문에 이를 제대로 이해해 보기 위해 파이썬의 개념을 먼저 익혀보도록 하겠습니다. 만약 파이썬 개념에 대해서 잘 아시는 분이시라면 중반부로 넘어가셔도 좋습니다! Python Dictionary (파이썬 딕셔너리) 우리가 많이 쓰는 리스트 자료구조에는 순서가 존재했습니다.(ordered) 하지만 딕셔너리는 순서가 없는 item의 모음으로 각 item이 key/value 쌍을 갖습니다. (즉, 순서가 없다! - unordered) Dictionary is mutable(변경 가능) and iterable..
2022.12.31 -
Trees(트리 자료구조) 1. Terminology (용어) tree 자료구조: 저장할 data를 노드에 저장하면서 노드들이 트리형태로 나열된 형태. root node:위 그림에서 44번 노드 parent node(ancestor;조상) / children node(desendant;후손) 25번 노드의 ancestor -> 20, 39, 44 번 노드 오른쪽 점선 네모 박스는 67의 desendant node들이지만 왼쪽 박스는 67의 desendant node가 아니다. 2. Binary trees (이진 트리) Binary tree는 모든 노드가 두 자식을 최대로 갖는 구조입니다.(자식 노드가 최대 2개) binary tree에서 노드들 배치는 왼쪽 서브 트리와 오른쪽 서브 트리의 형태로 조직화되..
[자료구조와 알고리즘 | 파이썬] Trees (트리 자료구조)Trees(트리 자료구조) 1. Terminology (용어) tree 자료구조: 저장할 data를 노드에 저장하면서 노드들이 트리형태로 나열된 형태. root node:위 그림에서 44번 노드 parent node(ancestor;조상) / children node(desendant;후손) 25번 노드의 ancestor -> 20, 39, 44 번 노드 오른쪽 점선 네모 박스는 67의 desendant node들이지만 왼쪽 박스는 67의 desendant node가 아니다. 2. Binary trees (이진 트리) Binary tree는 모든 노드가 두 자식을 최대로 갖는 구조입니다.(자식 노드가 최대 2개) binary tree에서 노드들 배치는 왼쪽 서브 트리와 오른쪽 서브 트리의 형태로 조직화되..
2022.12.31 -
1. Stack ADT(스택) 1-1. Stacks(스택) stack은 부엌에서 접시를 쌓는 것과 유사한 방식으로 data를 저장하는 자료구조입니다. 우리는 스택의 제일 윗 부분(top)에 접시를 둘 수 있고, 접시가 필요할 때 이 스택의 제일 윗 부분(top)으로부터 가져올 수 있습니다. 즉, 스택에 추가되는 마지막 접시는 그 스택으로부터 제일 먼저 집어 들어지는 것입니다. 이와 유사하게 stack 자료구조는 우리로 하여금 하나의 말단(end)으로부터 data를 읽고 저장할 수 있게끔 해주고 마지막에 추가되는 element가 첫 번째로 집어집니다. 따라서, stack은 last in, first out(즉, LIFO) 구조라고 합니다. 1-2. Basic operations(기본 연산) stack구조에..
[자료구조와 알고리즘 | 파이썬] Stacks and Queues (스택 & 큐)1. Stack ADT(스택) 1-1. Stacks(스택) stack은 부엌에서 접시를 쌓는 것과 유사한 방식으로 data를 저장하는 자료구조입니다. 우리는 스택의 제일 윗 부분(top)에 접시를 둘 수 있고, 접시가 필요할 때 이 스택의 제일 윗 부분(top)으로부터 가져올 수 있습니다. 즉, 스택에 추가되는 마지막 접시는 그 스택으로부터 제일 먼저 집어 들어지는 것입니다. 이와 유사하게 stack 자료구조는 우리로 하여금 하나의 말단(end)으로부터 data를 읽고 저장할 수 있게끔 해주고 마지막에 추가되는 element가 첫 번째로 집어집니다. 따라서, stack은 last in, first out(즉, LIFO) 구조라고 합니다. 1-2. Basic operations(기본 연산) stack구조에..
2022.12.31 -
Abstract Data Types(ADT) 1) Encapsulation (캡슐화) 2) Inheritance (상속) 3) Polymorphism (다형성) Encapsulation 멤버 함수의 구현과 object의 data에 대한 구현이 class를 사용하는 programmer들에게 알려지지 않도록 혹은 적어도 무관하게끔 class 정의하는 것은 여러 용어를 통해 알려져 있습니다. 사용되는 용어 중에 가장 흔한 것은 information hiding, data abstraction, and encapsulation이고 이것들 모두는 어떠한 class의 구현 시 세부사항이 그 class를 사용하는 programmer로부터 숨겨져 있다는 것을 의미합니다. 이러한 원칙은 OOP(Ojbect Oriente..
[Python] Abstract Data TypesAbstract Data Types(ADT) 1) Encapsulation (캡슐화) 2) Inheritance (상속) 3) Polymorphism (다형성) Encapsulation 멤버 함수의 구현과 object의 data에 대한 구현이 class를 사용하는 programmer들에게 알려지지 않도록 혹은 적어도 무관하게끔 class 정의하는 것은 여러 용어를 통해 알려져 있습니다. 사용되는 용어 중에 가장 흔한 것은 information hiding, data abstraction, and encapsulation이고 이것들 모두는 어떠한 class의 구현 시 세부사항이 그 class를 사용하는 programmer로부터 숨겨져 있다는 것을 의미합니다. 이러한 원칙은 OOP(Ojbect Oriente..
2022.12.31 -
1. Object(객체) 전반적인 의미, 보여지고 만질 수 있는 물질적인 것. 프로그래밍 관점, 메모리 상에 존재하는 함수와 변수의 조합 파이썬에서 모든 것은 object입니다. integers strings functions files etc. 2. 파이썬 정수(Integer)는 단순 정수보다 더 많은 것을 의미한다. 표준 파이썬의 구현은 C로 쓰여졌다. 이는 이것은 모든 파이썬 object가 단순히 교묘하게 위장된 C 구조체라는 것을 의미하며, 이 구조체는 그 가치뿐만 아니라 다른 정보도 포함합니다. 예를 들어, x = 10000과 같이 파이썬에서 정수를 정의할 때 x는 단순히 'raw' 정수가 아닙니다. 이것은 실제로 여러 값을 포함하는 복합적인 C 구조에 대한 포인터입니다. 3. Python va..
[python] Python objects(객체)란?1. Object(객체) 전반적인 의미, 보여지고 만질 수 있는 물질적인 것. 프로그래밍 관점, 메모리 상에 존재하는 함수와 변수의 조합 파이썬에서 모든 것은 object입니다. integers strings functions files etc. 2. 파이썬 정수(Integer)는 단순 정수보다 더 많은 것을 의미한다. 표준 파이썬의 구현은 C로 쓰여졌다. 이는 이것은 모든 파이썬 object가 단순히 교묘하게 위장된 C 구조체라는 것을 의미하며, 이 구조체는 그 가치뿐만 아니라 다른 정보도 포함합니다. 예를 들어, x = 10000과 같이 파이썬에서 정수를 정의할 때 x는 단순히 'raw' 정수가 아닙니다. 이것은 실제로 여러 값을 포함하는 복합적인 C 구조에 대한 포인터입니다. 3. Python va..
2022.12.31 -
자료구조와 알고리즘 with 파이썬은 위와 같은 영어 교재를 기반으로 작성한 내용입니다. 자료구조와 알고리즘 카테고리에 python 문법이 있으셔서 놀랐겠지만 아무래도 파이썬으로 해당 부분을 진행해 나갈 것이기 때문에 기본적으로 알아야 하는 파이썬 문법들을 정리해 보았습니다. 만약 파이썬을 이미 잘 아시는 분이라면 해당 포스팅은 건너 뛰셔도 좋습니다! 1. Python Flow Control 프로그램은 통상적으로 순서에 따라 실행되지만 프로그램 실행의 흐름(flow)를 제어하기 위한 주된 두 가지 방식이 존재합니다. conditional statements(is, else,...) loops(for, while ...) 2. if - else statements if...else 와 elif statem..
[python] Python 기본자료구조와 알고리즘 with 파이썬은 위와 같은 영어 교재를 기반으로 작성한 내용입니다. 자료구조와 알고리즘 카테고리에 python 문법이 있으셔서 놀랐겠지만 아무래도 파이썬으로 해당 부분을 진행해 나갈 것이기 때문에 기본적으로 알아야 하는 파이썬 문법들을 정리해 보았습니다. 만약 파이썬을 이미 잘 아시는 분이라면 해당 포스팅은 건너 뛰셔도 좋습니다! 1. Python Flow Control 프로그램은 통상적으로 순서에 따라 실행되지만 프로그램 실행의 흐름(flow)를 제어하기 위한 주된 두 가지 방식이 존재합니다. conditional statements(is, else,...) loops(for, while ...) 2. if - else statements if...else 와 elif statem..
2022.12.31