Typescript Custom Decorator
·
개발
데코레이터란 (Decorator)? class, method, accessor, property, parameter에 사용할 수 있는 선언의 한 종류이다. `@Decorator` 형식으로 사용을 할 수 있다. 이는 런타임에 호출되는 함수이다. 데코레이터 합성 데코레이터를 사용하다보면 호출 순서에 대해 혼란스러운 순간이 있다. 데코레이터는 내부 요소부터 외부 요소로 향하는 순서로 적용된다. 예를 들어 메서드의 매개변수에 대한 데코레이터가 적용된 후 메서드 자체 그리고 마지막에 클래스 전체에 대한 데코레이터가 적용된다. 같은 종류의 데코레이터의 경우도 유사하다. 수학의 합성함수와 동일하게 작동한다. @f @g x 다음과 같이 데코레이터가 선언되어 있다면 f(g(x))와 동일하게 실행된다. Typescript..
Static and non-static(instance) methods
·
개발
1. Definition and Access static instance Belog to the class itself, not to instances of the class. e.g) call them on the class directly -> Classname.staticMethod() Belog to instances of the class. Need to create an object of the class to use these methods. e.g ) const obj = new ClassName(); obj.instanceMethod() 2. Use of 'this' keyword static instance Cannot use 'this' to refer to an instance of..
[알고리즘 이론] Floyd Warshall 플로이드 와샬 알고리즘 C++
·
알고리즘 이론
Floyd Warshall이란? 대표적인 최단거리 찾기 알고리즘 중 하나 - 다익스트라, 벨만포드, 플로이드 와샬 * 다익스트라 : 모든 쌍의 최단 경로(음의 가중치 X) * 벨만포드 : 모든 정점에 대한 최단경로(음의 가중치 O) * 플로이드 와샬(음의 가중치 O + 음의 사이클이 없어야한다) 모든 정점끼리의 최단거리를 한번에 계산할 때 사용 + 동적 계획법을 사용 ex) 전체 정점에서 다른 정점들까지의 최단거리를 한번에 계산 -> 다익스트라의 경우 어떤 정점 A에서 다른 정점들까지의 최단 거리를 계산 Pseudo Code for(k=1;k> M; vector dis(N+1,vector(N+1,5000)); for (int i = 1; i > from >> to >> c; dis[from][to] = ..
[이론] 이진탐색 (Binary Search) - c++
·
알고리즘 이론
이진탐색(Binary Search)란? 오름차순으로 정렬된 리스트에서 특정값을 찾는 알고리즘 오름차순으로 정렬된 리스트에서 중간 값(mid)을 선택하고 찾고자 하는 값(target)과 비교를 반복 때문에 정렬이 필수적 선형탐색보다 훨씬 빠르게 검색 가능(탐색 범위를 절반씩 줄여나감) 시간 복잡도 O(log N) 구현방법 1~100까지 오른차순으로 정렬된 카드 더미가 있다고 가정하자. 목표는 29를 찾는 것이다. i번째 카드는 c[i]로 나타내고, 목표 값(target)은 val로 표현하자. 결정 문제(Decision Problem, 답이 이분적일 경우)를 "c[i] >= val ?"로 설정하고 답은 i를 증가시키며 탐색을 시작한다. 그리고 v[i] >= val이 되는 지점이 나타나면 탐색을 완료합니다. ..
[백준] 11059 크리 문자열 c++
·
알고리즘 이론/백준
11059. 크리 문자열 https://www.acmicpc.net/problem/11059 11059번: 크리 문자열 첫째 줄에 문자열 S가 주어진다. S는 숫자로만 이루어져 있으며, 길이는 1,000을 넘지 않는다. 항상 크리 문자열이 존재하는 입력만 주어진다. www.acmicpc.net 입력의 길이는 1000을 넘지 않는다. 입력의 길이가 굉장히 큰 것은 아니기때문에 부담을 갖지 않아도 될 것 같다. 크리 문자열이 무엇일까? 대칭되는 짝수 길이의 문자열을 의미하는 것인가? (처음 필자는 대칭되는 것만 말하는 줄 알았다..ㅎ;ㅎ;;;;) 대칭이 안되어도 합만 같으면 된다!! int main() { ios::sync_with_stdio(0); cout.tie(); cin.tie(); cin >> s;..
[백준] 1427 소트인사이드 c++
·
알고리즘 이론/백준
1427. 소트인사이드 https://www.acmicpc.net/problem/1427 1427번: 소트인사이드 첫째 줄에 정렬하고자하는 수 N이 주어진다. N은 1,000,000,000보다 작거나 같은 자연수이다. www.acmicpc.net 이 문제는 굉장히 쉽다. 입력받은 후 정렬만하면 끝이다! 문제가 아무리 쉬워도 우리가 확인할 것이 있다. 바로 N의 범위!!! N은 1,000,000,000보다 작거나 같은 자연수이다. 때문에 int를 사용할 수 있다. long long을 사용해야하는 경우가 있을 수 있으니 항상 입력의 범위를 잘 확인하자! 이 문제는 앞서 풀이를 올렸던 문제들의 코드를 합치면 된다. 가장 먼져 N을 입력받고, 각 자리 수를 벡터에 저장한다. cin >> num; while (n..