Home

[백준] 재귀함수가 뭔가요?

문제 c = int(input()) def answer_txt(cnt): if cnt == -1: return print('____'*cnt + '라고 답변하였지.') answer_txt(cnt - 1) def question_txt(cnt, c): if cnt == c: print('____'*cnt + '"재귀함수가 뭔가요?"') print('____'*cnt + '"재귀함수는 자기 자신을 호출하는 함수라네"') answer_txt(cnt) return print('____'*cnt + '"재...

Read more

[백준] 재귀의 귀재

문제 def recursion(s, l, r, c): c += 1 if l >= r: return 1, c elif s[l] != s[r]: return 0, c else: return recursion(s, l+1, r-1, c) def isPalindrome(s): return recursion(s, 0, len(s)-1, 0) cnt = int(input()) for i in range(cnt): txt = input() print(isPalindrome(txt)[0], isPalindrome(txt)[1])

Read more

[NLP] Exploding and Vanishing Gradient of RNN

Exploding and Vanishing Gradient of RNN RNN은 hidden-state($h_t$)에 이전 time step에 대한 정보를 가지고 있다. 하지만 이 $h_t$는 고정된 크기의 벡터이기에 긴 time step에 대한 정보를 모두 저장하기에는 한계가 있다. 이 부분을 좀 더 자세히 보기 위해 RNN의 학습 방법을 다시 보게 되면 아래의 그림과 같이 각 time step을 Forward 과정을 진행한다. 여기서 $\frac{dy_3}{dh_1}$을 구한다고 해보자. 그럼 $\frac{dy_3}{dh_3} \times \frac{dh_3}{dh_2} ...

Read more

[NLP] RNN과 Launguage Model

RNN(Recurrent Neural Network) RNN은 자연어 처리 및 시계열 데이터 등의 가변적인 길이의 sequence 데이터를 입력으로 받아 매 time step마다 output을 내는 모델이다. 위의 식과 같이 RNN은 이전 time step의 output인 $h_{t-1}$과 현재 input $x_t$를 input으로 받아 현재의 hidden state $h_t$를 출력한다. 이 때, 모든 time step에서는 동일한 Parameter $\theta$를 사용한다. RNN에서 Activation 함수로 주로 Tanh를 사용한다. Tanh는 zero-cent...

Read more

[백준] 큰 수 구성하기

문제 from itertools import product n, k = map(int, input().split()) num_list = sorted(map(str, input().split()), reverse=True) max_length = len(str(n)) def find_largest_combination(): for length in range(max_length, 0, -1): for c in product(num_list, repeat=length): answer = int("".join(c)) if answer <= ...

Read more