목록전체 글 (24)
akaSonny

본 문제는 에서 가져왔습니다. 문제 풀이 먼저, 두 개의 문자열을 비교하는 것이기 때문에 dp 테이블을 2차원으로 만들어야한다. dp[i][j] --> A의 i번째까지의 문자열을 B의 j번째까지의 문자열로 바꿀 때의 편집 거리 간단하게, 예시에 나오는 "cat" 과 "cut" 으로 dp 테이블을 만들면 다음과 같다. c u t c 0 1 2 a 1 1 2 t 2 2 1 (1, 1): "c"에서 "c"로 갈 때 필요한 연산 수 = 0 (1, 2): "c"에서 "cu"로 갈 때 필요한 연산 수 = 1 (1, 3): "c"에서 "cut"로 갈 때 필요한 연산 수 = 2 (2, 1): "ca"에서 "c"로 갈 때 필요한 연산 수 = 1 ... (3, 3): "cat"에서 "cut"로 갈 때 필요한 연산수 = 1..

본 문제는 에 수록되어 있습니다. 문제 풀이 일단 이 문제는 다이나믹 프로그래밍 챕터에 수록되어 있는 문제이다. 다이나믹 프로그래밍을 할 때 가장 먼저 생각해야되고 결국 핵심적인게 점화식을 구해야되는건데 ... 나의 머리는 잘 돌아가지 않는다 흑... 제일 먼저 못생긴 수를 저장할 dp테이블을 만든다. 못생긴 수는 2, 3, 5만을 약수로 가져야하므로 dp 테이블 내에 있는 숫자들에 계속해서 2, 3, 5를 곱해야되는 아이디어를 가지고 시작했다. 그리고 작은 수부터 dp 테이블에 저장해야 되는데.. 이 부분이 너무 어려웠다 ㅠㅠ 그래서 해설의 도움을 약간 (?) 받은 풀이 .. 사실 두 번째 푸는건데도 아직도 제자리걸음이다 에흉흉 ㅠㅠ dp = [0] * 1001 n = int(input()) dp[1]..

딥러닝을 처음 시작하면, 가장 먼저 만나게 되는 데이터셋인 MNIST. MNIST (Modified National Institute of Standards and Technology database): 손으로 쓴 숫자들로 이루어진 대형 데이터베이스 이런 숫자들을 분류하는 것을 목적으로 훈련을 시켜보자! (tensorflow 2.0 이상 버전) #1. 필요한 라이브러리 import import numpy as np import tensorflow as tf import tensorflow.keras import utils from tensorflow.keras.datasets import mnist from tensorflow.keras.models import Model from tensorflow.k..

Heliospheric current sheet (or interplanetary current sheet) (태양권 전류편)은 행성간 자기장 (interplanetary magnetic field)이 태양을 향하느냐/태양에서 멀어지느냐를 구분하는 태양권 내의 '면 (surface)' 이다. 다시 말해서, 태양 자기장의 극성이 북에서 남으로 바뀌는 곳이다. 태양의 자기장은 9개의 행성이 공전하고 있는 태양권(heliosphere)이라고 불리는 공간으로 퍼진다. 이 태양권의 가장 큰 요소는 행성들도 아니고, 태양도 아닌 heliospheric current sheet이다. 약한 전류들이 흐르고 (\( 10^{-10} A/m^2 \)), 지구 근처에서의 두께는 약 10,000 km 정도이다. 태양의 자전축에..

본 포스팅은 spaceweatherlive에 있는 IMF에 관한 기사를 번역한 것입니다. * 오역이 있을 수 있습니다. * 번역하기 애매한 단어들은 그냥 원문 그대로 썼습니다. 행성간 자기장 (Interplanetary Magnetic Field; IMF) IMF는 태양풍이 어떻게 지구의 자기권과 상호작용하는지에 대해 큰 역할을 한다. 이 기사에서는 IMF가 무엇인지, 그리고 지구의 오로라 활동에 어떤 영향을 미치는지 알아본다. 태양의 자기장 (The Sun's manetic field) 태양 극소기일 때, 태양의 자기장은 지구의 자기장과 비슷해 보인다. 적도 근처에서는 닫힌 자기력선이, 극 근처에서는 열린 자기력선이 보이는 일반적인 막대 자석처럼 보인다. 과학자들은 이러한 지역을 쌍극자(dipole)라..
딥러닝 모델을 만들다 보면 내장되어 있는 함수 말고 내가 원하는 loss function을 만들어야 할 때가 있다. 사실 꼭 필요하진 않지만,, 모델의 목적에 따라 바꿔쓸 때가 생긴다. 뭐 경진대회 용이면 대회에 쓰는 score를 loss function으로 사용해서 그 점수가 좋아지도록 학습 방향을 설정한다던가.. 할때 ? 가장 먼저 큰 틀은 다음과 같다. import tensorflow.keras.backend as K def custom_loss_function(y_true, y_pred): loss = ... return loss 원하는 함수를 위와 같이 만들어준다. 이 때 입력인자는 실제값과 예측값을 순서대로 받기! 변수명은 상관없음 그리고 모델을 complie 할 때, loss 부분에 이 함수..
써도써도 까먹는 문자열 포맷팅 방법.. ㅎ 맨날 찾아보는 것도 귀찮아서 정리할 필요를 느꼈다 1. 내가 가장 많이 쓰는 방법 str.format() - 중괄호 { } 사용하기 1) 이렇게 그냥 중괄호 순서대로 뭐가 들어갈지 .format()에 써주면 된다. year = 2022 month = 9 day = 8 print('Today is {}/{}/{}.'.format(year, month, day)) # Today is 2022/9/8. 2) 중괄호 안을 변수로 사용하기: 이거는 같은 변수가 반복적으로 들어갈 때 주로 쓴다. (내가) year = 2022 month = 9 day = 8 print('Today is {y}/{m}/{d}.'.format(y=year, m=month, d=day)) # T..

Linear regression 이란? x(입력값)와 y(출력값)가 $y = x * w + b$ 라는 관계식을 갖고 있다고 가정하고 푸는 문제! 따라서 모델은 $\hat{y} = x * w$ 라는 예측값을 출력하기 위해 1차 계수인 $w$를 학습을 통해 훈련하게 된다. 이제 간단한 linear model을 만들어보자. 1. (완전) 간단한 데이터셋 만들기 import torch import torchvision import numpy as np import matplotlib.pyplot as plt x_data = [1., 2., 3.] y_data = [2., 4., 6.] plt.plot(x_data, y_data) plt.xlabel('Hours') plt.ylabel('Points') plt.s..
5월부터 pytorch를 기초부터 배우게 되었다. 강의를 듣고 후에 복습하고 정리해야 나중에 남게 될 것 같아서 블로그에 정리하기로! 1. torch.ones(), torch.zeros() : 기본으로 실수형으로 나온다 import torch import numpy as np x = torch.ones(3, 2) print(x) # tensor([[1., 1.], # [1., 1.], # [1., 1.]]) x = torch.zeros(3, 2) print(x) # tensor([[0, 0.], # [0., 0.], # [0., 0.]]) 2. seed 고정 : random 변수를 사용할 때 seed를 고정하면 항상 똑같은 변수가 나오게 된다. 딥러닝 모델 훈련 후 reconstruct할 때 중요! to..

본문은 '이것이 코딩테스트다' 책(나동빈 저, 한빛미디어)을 참고하며 작성하였습니다. 파이썬 다익스트라 (Dijkstra) 알고리즘 (혹은 데이크스트라 알고리즘) : 그래프에서 한 정점에서 다른 여러 개의 정점들 간의 최단 경로를 찾는 알고리즘 (그리디 알고리즘으로도 분류된다. - 가장 비용이 적게 드는 정점을 선택해서 과정을 반복하기 때문) 이러한 그래프가 있을 때 1번에서 다른 정점으로 가는 최단 경로를 모두 구해보는 문제를 생각했을 때, 초기화 - 모든 거리를 무한대로 설정한다. (파이썬에서는 통상적으로 1e9 사용) --> 2 (무한) , 3 (무한), 4 (무한), 5 (무한), 6 (무한) 1번에서 갈 수 있는 정점들 확인 후 비용 계산 후 최소값으로 갱신 --> 2 (2) , 3 (5), 4..