파이썬

    파이썬 문법 정리 1. <리스트, 문자열, 튜플,딕셔너리,Set>

    파이썬 문법 정리 1. <리스트, 문자열, 튜플,딕셔너리,Set>

    알고리즘 공부를 하면서 파이썬의 기초적인 문법들과 라이브러리들을 확실히 알고 쓰는게 좋을거같아서 복습하는겸 정리하는 게시글 리스트 자료형 리스트는 여러 개의 데이터를 연속적으로 담아 처리하기 위해 사용한다. 파이썬의 리스트 자료형은 C나 자바와 같이 내부적으로 배열(Array)를 채택하고 있고 동시에 연결 리스트 자료구조 기능을 포함하고 있어 append(), reverse() 등의 메서드를 지원한다. 리스트 만들기 리스트는 대괄호([])안에 원소를 넣어 초기화하며 쉼표(,)로 원소를 구분한다. 리스트의 원소에 접근할 때는 인덱스 값을 괄호 안에 넣는다. 비어있는 리스트를 선언하고자 할 때는 대괄호를 이용할 수 있다 a = [1, 2, 3, 4, 5, 6, 7, 8, 9] print(a) # => [1,..

    그리디 알고리즘이란?, 백준 설탕배달

    그리디 알고리즘이란?, 백준 설탕배달

    탐욕 알고리즘(Greedy Algorithm)이란? Greedy는 ‘탐욕스러운, 욕심 많은’ 이란 뜻이다. 탐욕 알고리즘은 말 그대로 선택의 순간마다 당장 눈앞에 보이는 최적의 상황만을 쫓아 최종적인 해답에 도달하는 방법이다. 탐욕 알고리즘은 최적해를 구하는 데에 사용되는 근사적인 방법이다. 탐욕 알고리즘은 여러 경우 중 하나를 결정해야 할 때마다 그 순간에 최적이라고 생각되는 것을 선택해 나가는 방식으로 진행하여 최종적인 해답에 도달한다. 순간마다 하는 선택은 그 순간에 대해 지역적으로는 최적이지만, 그 선택들을 계속 수집하여 최종적(전역적)인 해답을 만들었다고 해서, 그것이 최적이라는 보장은 없다. 하지만 탐욕 알고리즘을 적용할 수 있는 문제들은 지역적으로 최적이면서 전역적으로 최적인 문제들이다. 최..

    1. 알고리즘 공부  배열, 리스트 (파이썬 네이티브 코드로 구현하기)

    1. 알고리즘 공부 배열, 리스트 (파이썬 네이티브 코드로 구현하기)

    1. Array (배열) 배열은 크기가 정해진 데이터의 공간. 한 번 정해지면 바꿀 수 없다. 배열은 각 원소에 즉시 접근할 수 있다. 여기서, 원소의 순서는 0부터 시작하고 이를 인덱스라 부른다. 배열은 원소를 중간에 삽입/삭제 하려면 모든 원소를 다 옮겨야 한다. 원소를 새로 추가하려면, 새로운 공간을 할당해야 하므로 매우 비효율적인 자료구조. 2. Linked List(링크드 리스트) 혹은 리스트(List) 리스트는 크기가 정해지지 않은 데이터의 공간 리스트는 특정 원소에 접근하려면 오래 걸린다. 리스트는 원소를 중간에 삽입/삭제 하기 위해서 앞 뒤의 포인터만 변경하면 된다. 즉 원소 삽입/삭제가 간단하다. 배열과 리스트의 차이 배열 : 배열의 끝에서만 추가/삭제 연산을 하거나 추가/삭제 연산이 없..

    백준 1927번 <파이썬> (힙에 대해 공부하기)

    백준 1927번 <파이썬> (힙에 대해 공부하기)

    1. 힙이란 무엇인가 힙은 특정한 규칙을 가지는 트리로, 최댓값과 최솟값을 찾는 연산을 빠르게 하기 위해 고안된 완전이진트리를 기본으로 한다. A가 B의 부모 노드이면 A의 키값과 B의 키값 사이에는 대소 관계가 성립한다 최소 힙 : 부모 노드의 키값이 자식 노드의 키값보다 항상 작은 힙 최대 힙 : 부모 노드의 키값이 자식 노드의 키값보다 항상 큰 힙 이러한 속성으로 인해 힙에서는 가장 낮거나 혹은 가장 높은 우선순위를 가지는 노드가 항상 루트에 오게 되고 이를 이용해 우선순위 큐와 같은 추상적 자료형을 구현할 수 있다. import heapq heap = [] heapq.heappush(heap, 50) heapq.heappush(heap, 10) heapq.heappush(heap, 20) heap..