본문 바로가기

분류 전체보기151

[백준] 18870 좌표압축 계속 이진탐색을 활용한 정렬문제를 풀다보니 저절로 이진탐색이 떠올랐다.. 해당 원소가 나머지 원소들과 비교했을 때 몇번째로 크냐?? 를 묻는 문제이므로, vector를 정렬한 후에 저장된 원소를 하나씩 꺼내면서 이진탐색을 진행한다. 단, v에서 중복원소를 지워야해서 좀 까다로웠다. 처음 set을 사용했다가 std::set은 배열과같이 indexing이 안되므로 복잡해질거같아서 vector의 erase함수를 이용하기로 했다. v.erase(unique(v.begin(),v.end()),v.end()); 먼저 unique(v.begin(),v.end())는 가령 [3,3,4,1,5,5]배열이 있을 때 [3,4,1,5,5,5]로 만들어준다. 즉, unique 함수를 적용하면 위와 같이 중복된 원소를 제거하며 .. 2022. 4. 20.
[백준] 1764 듣보잡 백준 10815번 문제의 문자열버전이다. 풀이가 비슷하므로 아래 문제풀이를 참고해도 될거같다. https://everydayyy.tistory.com/44 [백준] 10815 숫자카드 이중 for문을 사용할 시 500000*500000의 엄청난 크기가 나와서 이진탐색으로 풀어야 한다. 간단한 이진탐색이기 때문에 큰 어려움은 없었지만 까먹어서 구현하는데 오래걸렸다,, *********까먹지 않기 everydayyy.tistory.com 이진탐색으로 해당문자열이 있는지 탐색하고, 있다면 answer 벡터에 저장해서, 마지막에 정렬하여 출력하면 끝!! 숫자에 이어서 영문자열의 경우 또한 STL의 std::sort()함수로 처리가 가능하다는 것을 보여준 문제같다. void sort(T start, T end, .. 2022. 4. 19.
[백준] 10815 숫자카드 이중 for문을 사용할 시 500000*500000의 엄청난 크기가 나와서 이진탐색으로 풀어야 한다. 간단한 이진탐색이기 때문에 큰 어려움은 없었지만 까먹어서 구현하는데 오래걸렸다,, *********까먹지 않기 위해 개인적으로 정리할 예정!!!***********8 이외에도 시간초과가 계속 뜨는 바람에 계속 수정을 했다.. 수정한내용은 다음과 같다. 1. 입/출력에 시간을 많이 잡아먹어서 ios::sync_with_stdio(false); cin.tie(0); 추가 2. 기존에 쓰던 벡터에서 일반배열로 수정 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40.. 2022. 4. 19.
[DL] Gradient Descent의 문제점과 여러가지 Optimzer SGD(stochastic gradient descent) 배치 크기가 1인 경사하강법이다. 즉, 전체 데이터가 아닌 랜덤하게 추출된 일부데이터를 사용해서 gradient를 계산하는 방법이다. 일반적인 gradient descent방식(GD)에서 배치는 전체 데이터를 의미하므로 이를 사용하는 것은 노이즈가 적거나 최소값을 얻는데 유용하지만 데이터셋이 커지면 문제가 발생한다. 이 문제는 SGD로 보완할 수 있다. 기존의 너무 느린 GD의 학습방법을 SGD를 통해서 개선했지만, SGD에도 문제가 존재한다. mini-batch를 통해서 학습시키는 경우 최적의 값을 찾아가는 경로는 다음 사진과 같이 뒤죽박죽이다. 따라서 지그재그로 움직이는 비효율적인 경로를 보완하기 위해 모멘텀(Momentum)을 추가한다. M.. 2022. 4. 17.
[DL] ANN 활성함수 (Activation function) 종류 신경망에서는 노드에 들어오는 값들에 대해 곧바로 다음 레이어로 전달하지 않고 활성화 함수를 통과시킨 후 전달한다. 활성화 함수(activation function)는 입력 신호의 총합을 출력 신호로 변환하는 함수로, 입력 받은 신호를 얼마나 출력할지 결정하고 네트워크에 층을 쌓아 비선형성을 표현할 수 있도록 해준다. 1. step function 함수의 형태는 0보다 작은경우 0, 0보다 큰경우 1이 되며, 미분했을 때 값이 0이 되므로, 인공신경망의 활성함수로 사용하기에는 부적합하다(가중치값들을 찾기 힘들다). 2. sigmoid 보라색부분이 f(x)에 해당한다. f(x)는 입력값 x에 해당하는 출력값이 0~1사이가 되는 특징이 있다. 미분했을 때는 초록색부분의형태가 되는데, sigmoid를 활성함수로.. 2022. 4. 17.
[양자컴퓨팅] Eigenvectors & Eigenvalues 와 Hermition 😊Eigenvalue & Eigenvector 식 AV = cV를 만족할 때 스칼라c와 벡터V를 각각 A의 eigenvalue, eigenvector라고 한다. 행렬A의 eigenvalue와 eigenvector는 여러개가 있을 수 있다. 아래 예시와 같이 2*2행렬A가 주어졌을 때 (1,2)를 곱하게 되면 2*(1,2)가 나오므로 AV = cV의 형태를 만족하게 된다. Eigenvector 특징 서로 다른 두 벡터 V와 V'가 있을 때 두 벡터는 같은 eigenvalue c0을 가질 수 있다. 밑의 증명식들은 V대신 다른 것들을 넣었을 때 AV = cV형태로 만들어지면서 같은 c0을 가질 수 있다는 것을 증명하기 위한 것이다. c0을 eigenvalue로 갖는 모든 eigenvector들의 집합은 co.. 2022. 4. 17.