본문 바로가기

전체 글

(185)
[Python] 백준 파이썬 11050 이항 계수 1 https://www.acmicpc.net/problem/11050 11050번: 이항 계수 1 첫째 줄에 \(N\)과 \(K\)가 주어진다. (1 ≤ \(N\) ≤ 10, 0 ≤ \(K\) ≤ \(N\)) www.acmicpc.net # 백준 11050 이항 계수 1 import math n, k = map(int, input().split()) print(math.comb(n,k)) python에는 math.comb() 라는 아주 좋은 함수가 있습니다. 😀
[NLP] Sequence to Sequence Learning with Neural Networks 리뷰 Abstract DNN은 large labeled training set을 이용하여 학습을 가능하게 해 줬지만, sequence를 sequence로 표현하는 데는 사용되지 않았습니다. 이에 논문에서는 sequence 학습에 대한 end-to-end방법을 소개합니다. 멀티 레이어 LSTM을 사용하여 input sequence를 하나의 고정 길이 벡터로 표현하고, 다른 LSTM을 이용하여 표현된 벡터로부터 target sequence를 decode 합니다. LSTM은 긴 문장에서도 어려움 없이 동작합니다. 그리고 단어 순서에 민감하고 능동적 및 수동적 표현에 상대적으로 강건한 구와 문장 표현을 학습했습니다. 마지막으로 source sentence의 단어 순서를 뒤집는 것이 LSTM의 성능을 크게 향상하는 것..
[Python] 백준 파이썬 3036 링 https://www.acmicpc.net/problem/3036 3036번: 링 출력은 총 N-1줄을 해야 한다. 첫 번째 링을 제외한 각각의 링에 대해서, 첫 번째 링을 한 바퀴 돌리면 그 링은 몇 바퀴 도는지 기약 분수 형태 A/B로 출력한다. www.acmicpc.net # 백준 3036 링 import math n = int(input()) ring_r = list(map(int, input().split())) ring_1 = ring_r[0] for i in range(1, len(ring_r)): r_gcd = math.gcd(ring_1, ring_r[i]) A = ring_1 // r_gcd B = ring_r[i] // r_gcd print(f'{A}/{B}') 분수를 약분 한다는 것..
[Python] 백준 파이썬 2981 검문 https://www.acmicpc.net/problem/2981 2981번: 검문 트럭을 타고 이동하던 상근이는 경찰의 검문을 받게 되었다. 경찰은 상근이가 운반하던 화물을 하나하나 모두 확인할 것이기 때문에, 검문하는데 엄청나게 오랜 시간이 걸린다. 상근이는 시간 www.acmicpc.net 처음 풀이(틀림) # 백준 2981 검문 n = int(input()) n_list = [] for _ in range(n): n_list.append(int(input())) m_list = [] m = min(n_list) for _ in range(m-1): n_list_copy = n_list.copy() for j in range(len(n_list)): n_list_copy[j] = n_list[j] ..
[NLP] Distributed Representations of Words and Phrases and their Compositionality 리뷰 Abstract 이 논문은 이 전에 발표된 Efficient Estimation of Word Representations in Vector Space의 후속 논문으로 기존의 Skip-gram 모델보다 단어 벡터의 quality를 높이는 것과 동시에 훈련 시간을 줄이는 방법을 제시했습니다. 빈도수가 높은 단어를 subsampling 함으로써 훈련 시간을 줄이고, 좀 더 보편적인 단어 표현을 얻을 수 있었습니다. 또한, 계층적 소프트맥스를 대신할 수 있는 negative sampling에 대해서도 설명합니다. 단어 표현의 고질적인 문제는 관용어구를 표현할 수 없다는 것입니다. 예를 들어 'Canada'와 'Air'의미를 가지고 'Air Canada'로 합치는 것은 쉽지 않습니다. 이에 영감을 받아서, 텍스..
[Python] 백준 파이썬 1037 약수 https://www.acmicpc.net/problem/1037 1037번: 약수 첫째 줄에 N의 진짜 약수의 개수가 주어진다. 이 개수는 50보다 작거나 같은 자연수이다. 둘째 줄에는 N의 진짜 약수가 주어진다. 1,000,000보다 작거나 같고, 2보다 크거나 같은 자연수이고, 중복되 www.acmicpc.net # 백준 1037 약수 n = int(input()) list_ = list(map(int, input().split())) print(min(list_) * max(list_)) 실제로 약수가 주어지기 때문에 원래 수를 찾는 건 아주 쉬운 문제입니다. 그냥 약수중에서 제일 작은 수랑 제일 큰 수를 곱하면 되는 문제입니다 ㅋ_ㅋ
[NLP] Efficient Estimation of Word Representations in Vector Space(Word2Vec) 리뷰 Abstract 이 논문에서는 아주 큰 데이터셋에 있는 단어의 연속적인 벡터 표현을 계산하는 새로운 모델 구조를 제안합니다. 이는 이 전의 모델에 비해 훨씬 적은 계산 양에도 불구하고 정확도에서 큰 성능 향상이 있었습니다. 나아가 syntactic, semantic 단어 유사도 측정 부분에서 state-of-the-art 성능을 달성했습니다. Introduction 이전의 많은 NLP 시스템은 단어를 아주 작은 단위(atomic units)로써 다뤘습니다. 여기에 단어 사이의 유사성에 관한 개념은 없었습니다. 이러한 방식에는 단순하고, 강건하다는 장점과 단순한 모델이 많은 양의 데이터로 학습을 진행했을 때가 복잡한 모델이 적은 데이터로 학습했을 때 보다 성능이 좋은 것이 관찰됐습니다. 하지만, 이런 단순..
[Python] 백준 파이썬 1358 하키 https://www.acmicpc.net/problem/1358 1358번: 하키 첫째 줄에 수 W H X Y P가 주어진다. P는 선수의 수이다. W와 H는 100보다 작거나 같은 자연수이고, H는 짝수이다. X와 Y는 절댓값이 100보다 작거나 같은 정수이다. P는 최대 50인 자연수이다. 둘째 줄부 www.acmicpc.net # 백준 1358 하키 import math w, h, x, y, p = map(int, input().split()) # 반지름, 각 원의 중심 좌표 r = h / 2 c1x, c1y = x, y+r c2x, c2y = x+w, y+r count = 0 # 링크 안에 있는 사람 수 for _ in range(p): px, py = map(int, input().split(..