연결리스트 구현 리스트를 역으로 정렬(스택 방식)
set에 담아서 중복을 제거한다
( { } ) => 괄호가 올바르게 닫혀있으면 true({\[ , ( , {{{ , ((\[]]] 등 => 괄호가 올바르게 닫혀있지 않으면 fasle꼭대기(n) 계단이 주어지면 오르는 방법의 가지수를 구하는 문제ex) n=3 => 3개 (1+2, 2+1, 1+1+1
중복 순열 반복문 재귀 순열 중복을 허용하지 않는다. 반복문 index가 하나라도 같으면 반복문을 한 턴 넘기는 원리 재귀 현재 선택된 배열의 요소를 splice 하면서 재귀가 진행되면, 중복을 제거한 조합을 만든다. 조합 중복과 순서의 중복을 허용하지 않는다. ex) 조합은 [1,2,3]과 [1,3,2]를 같은 것으로 간주한다. 반복문 재귀 ...
개요 완전탐색으로 풀면 시간복잡도가 O(N^2)이 되는데 투포인터로 풀면 O(N)이 된다. 두개의 포인터를 두어, 배열의 끝까지 이동 시키면서 주어진 조건을 만족하는 값을 새로운 배열에 push하는게 관건이다.
설명 >[1, 2, 3, 4, 5, 6, 7] 배열에서 세가지 수의 합이 가장 큰 수를 구하라 해당 알고리즘의 원리가 윈도우를 옆으로 쭉쭉 밀어나가면서 답을 구하는 느낌(?)이라서 슬라이딩 윈도우인 것 같다. 이 때, 주목할 점은 윈도우(선택된 배열)이 한칸씩 이동할 때마다, 윈도우의 맨 앞의 요소는 빼주고, 윈도우의 맨 뒤의 요소는 더해준다는 것이다....
해시는 Map으로 구현하자 해시는 보통 (key, value) 형태로 구성되며, js에서는 Object나 Map으로 구현합니다. Map은 Object를 사용하는 것에 비해 여러가지 장점이 있습니다. key값의 다양한 type Object의 key값은 string 이나 symbol 밖에 허용이 안됨. Map의 key값으로는 모든 type이 가능하다. ...