Loading...
2022. 2. 1. 21:42

파이썬(python)의 defaultdict, ordereddict, namedtuple

1. defaultdict 사전에서 value의 기본값을 지정하여 새로 key를 생성할 때 value를 지정하지 않으면 기본값이 자동으로 들어간다 from collections import defaultdict로 사용할 수 있음 단어 빈도수 계산에 유용함 defaultdict를 쓰지 않으면 d[word]하는 순간 에러가 나는데 try~except~로 처리해야하는 번거로움이 있다 하지만 defaultdict로 기본값을 미리 지정해주면 d[word]해도 에러가 안난다 2. Ordereddict 데이터 입력한 순서대로 출력해주는 dictionary 요즘엔 기본 dictionary도 입력한 순서대로 출력해주므로 큰 의미없다 3. namedtuple 튜플 형태로 데이터 구조체(자료 구조, 이름 등)를 저장하는 자..

2022. 2. 1. 21:28

코딩테스트에서 유용한 list의 split과 join

str.split([기준값])은 [기준값]을 기준으로 str을 분리하여 리스트로 만들고 list(str)은 str 1글자씩 원소로 갖는 리스트로 만들어 반환 string = 'daehyuck' string.split() ['daehyuck'] string2 = 'daehyuck yun' string2.split() ['daehyuck','yun'] list(string) ['d','a','e','h','y','u','c','k'] ‘(기준값)’.join(list)는 리스트를 받아서 기준값으로 리스트 원소를 이어 문자열을 반환함 입력된 글자를 역순으로 출력하는 프로그램 word = input('input a word:') word_list = list(word) reverse_list = [] for i ..

2022. 2. 1. 19:12

힙큐(heapq) 활용하기 기본

1. 문제 https://programmers.co.kr/learn/courses/30/lessons/42626 코딩테스트 연습 - 더 맵게 매운 것을 좋아하는 Leo는 모든 음식의 스코빌 지수를 K 이상으로 만들고 싶습니다. 모든 음식의 스코빌 지수를 K 이상으로 만들기 위해 Leo는 스코빌 지수가 가장 낮은 두 개의 음식을 아래와 같 programmers.co.kr 매운 것을 좋아하는 Leo는 모든 음식의 스코빌 지수를 K이상으로 만들고 싶습니다. 모든 음식의 스코빌 지수를 K이상으로 만들기 위해 Leo는 스코빌 지수가 가장 낮은 두 개의 음식을 아래와 같이 특별한 방법으로 섞어 새로운 음식을 만듭니다. 섞은 음식의 스코빌 지수=가장 맵지 않은 음식의 스코빌 지수+(두 번째로 맵지 않은 음식의 스코빌..

2022. 2. 1. 18:56

convolution 연산 이해하기 기본편

1. Fully connected 연산 기존의 MLP는 가중치 행렬에서 각 행마다 다른 가중치 행들이 각각 Hidden vector에 연결되는 구조다. 이게 단점은 parameter가 많아서 계산량이 많아진다. 2. Convolution 연산 고정된 가중치 행렬 kernel을 입력벡터상에 움직여가면서 모든 hidden vector에 연결시키는 전략은 어떨까? parameter 수가 엄청나게 줄어들어 계산이 쉬워진다. 심지어 행렬곱이니까 여전히 선형변환이다. 3. Convolution 함수 공식은 다음과 같다. 참고로 convolution은 변수변환을 시켜서 교환법칙이 성립한다는 것을 보일 수 있다. 커널을 이용해 신호를 국소적으로 증폭 또는 감소시켜 정보를 변환하거나 추출하는 방식으로 signal pro..

2022. 1. 31. 21:20

힙큐(heapq)에 대하여

최댓값과 최솟값을 찾는 연산을 빠르게 하기 위해 고안된 완전이진트리 트리는 root node에서 밑으로 가지를 뻗어나가는 형태의 자료구조로 binary tree인 이진 트리는 최대 2개까지만 자식 노드를 가진다 최소힙은 부모 node가 자식 node보다 항상 작은 binary tree 최대힙은 부모 node가 자식 node보다 항상 큰 binary tree heap은 배열로 구현되며 파이썬에서는 list로 만들어진다 import heapq를 통해 파이썬에서 heapq 관련 함수 사용가능 기존 리스트를 heapq로 만들려면 heapify()를 이용 heap2 = [50,10,20] heapq.heapify(heap2) print(heap2) [10,50,20] 혹은 빈 리스트를 생생한 후에 heappush..

2022. 1. 31. 21:09

그래프를 표현하는 수학적인 방법

1. 그래프의 수학적인 표현 그래프는 “정점 집합과 간선 집합으로 이루어진 수학적 구조”라고 정의했으므로 정점의 집합을 V, 간선의 집합을 E라 하여 G=(V,E)로 표기 2. Neighbor 어떤 node의 neighbor은 그 node와 직접적으로 연결된 모든 node의 집합 V의 neighbor을 N(V)로 표기 자기 자신은 Neighbor라고 하진 않아 3. directed graph directed graph에서는 나가는 neighbor와 들어오는 neighbor을 구분한다. 어떤 node V에서 link가 나가는 방향으로 연결된 node는 V의 outcoming neighbor라 하고 $N_{out}(V)$로 표기 link가 node V로 들어오는 방향으로 연결된 node는 V의 incomin..