Skip to content

Instantly share code, notes, and snippets.

@cjnghn
cjnghn / solution.py
Last active July 28, 2021 07:53
5. Longest Palindromic Substring
class Solution:
def longestPalindrome(self, s: str) -> str:
def extend(l, r): # 구현 연습 필요!~
while l >= 0 and r < n and s[l] == s[r]:
l -= 1; r += 1
return s[l + 1:r]
res, n = "", len(s)
for i in range(n):
# 슬라이딩 윈도우를 떠올리다가 두 케이스로 나눔.
@cjnghn
cjnghn / s1.py
Created July 28, 2021 08:42
77. Combinations
class Solution:
def combine(self, n: int, k: int) -> List[List[int]]:
def dfs(nums: List[int], path: List[int]):
if len(path) == k:
res.append(path)
return
for i in range(len(nums)):
dfs(
nums[i+1:],
'''pseudo
DFS-iterative(G, v)
let s be a stack
S.push(v)
while S is not empty do
v = S.pop()
if v is not labeled as discovered then
label v as discovered
for all edges from v to w in G.adjacentEdges(v) do
S.push(w)
@cjnghn
cjnghn / 트리높이.cpp
Created August 4, 2021 22:42
트 리 기 본
// 트리 높이 = 서브트리들 중 가장 큰 높이 + 1 (루트 포함)
int getHeight(int root) {
int res = 1;
for (int child: children[root])
result = max(result, getHeight(child) + 1);
return result;
}
@cjnghn
cjnghn / 1_DP.md
Last active August 8, 2021 23:02
알고리즘 - 다이나믹 프로그래밍

다이나믹 프로그래밍

여러 개의 하위 문제를 먼저 푼 후 그 결과를 쌓아올려 주어진 문제를 해결하는 알고리즘

DP를 푸는 과정

  1. 테이블 정의하기
  2. 점화식 찾기
  3. 초기값 정하기
@cjnghn
cjnghn / SELECT.sql
Last active August 23, 2021 03:35
프로그래머스 풀이 (Level 1)
## 모든 레코드 조회하기
# https://programmers.co.kr/learn/courses/30/lessons/59034
SELECT * FROM ANIMAL_INS ORDER BY ANIMAL_ID;
## 역순 정렬하기
# https://programmers.co.kr/learn/courses/30/lessons/59035
SELECT NAME, DATETIME FROM ANIMAL_INS ORDER BY ANIMAL_ID DESC;
## 아픈 동물 찾기
# https://programmers.co.kr/learn/courses/30/lessons/59036
@cjnghn
cjnghn / impl.py
Last active September 8, 2021 11:33
krwordrank를 이용한 주요 뉴스 분석
## pip3 install krwordrank
import krwordrank
from krwordrank.sentence import summarize_with_sentences
from typing import List
## initialize
period = '1D'
category = 'cyber security'
@cjnghn
cjnghn / 1_preprocessing.py
Last active September 9, 2021 10:11
keras - 1
"""Tokenizer()
토큰화와 정수 인코딩(단어에 대한 인덱싱)을 위해 사용됩니다.
"""
from tensorflow.preprocessing.text import Tokenizer
t = Tokenizer()
fit_text = "The earth is an awesome place to live"
t.fit_on_texts([fit_text])
@cjnghn
cjnghn / 1_Embedding.py
Created September 9, 2021 10:17
keras - 2
"""Embedding()
Embedding()은 단어를 밀집 벡터(dense vector)로 만드는 역할을 합니다.
인공 신경망 용어로는 임베딩 층(embedding layer)을 만드는 역할을 합니다.
Embedding()은 정수 인코딩이 된 단어들을 입력을 받아서 임베딩을 수행합니다.
Embedding()은 (number of samples, input_length)인 2D 정수 텐서를 입력받습니다.
이 때 각 sample은 정수 인코딩이 된 결과로, 정수의 시퀀스입니다.
Embedding()은 워드 임베딩 작업을 수행하고
(number of samples, input_length, embedding word dimensionality)인 3D 텐서를 리턴합니다.
@cjnghn
cjnghn / 1_Modeling.py
Last active September 9, 2021 10:22
keras - 3
""" Sequential()
Explain
-------
인공 신경망 챕터에서 입력층, 은닉층, 출력층에 대해서 배웠습니다.
케라스에서는 이러한 층을 구성하기 위해 Sequential()을 사용합니다.
Sequential()을 model로 선언한 뒤에 model.add()라는 코드를 통해 층을 단계적으로 추가합니다.
"""
from tensorflow.keras.models import Sequential