분류 전체보기(222)
-
[Linked List] Linked List Cycle
Given head, the head of a linked list, determine if the linked list has a cycle in it. There is a cycle in a linked list if there is some node in the list that can be reached again by continuously following the next pointer. Internally, pos is used to denote the index of the node that tail's next pointer is connected to. Note that pos is not passed as a parameter. Return true if there is a cycle..
2021.02.09 -
[Linked List] Palindrome Linked List
Given a singly linked list, determine if it is a palindrome. palindrome은 대칭이란다 즉, Linked List가 거꾸로 들어와도 동일하게 대칭되는 List인지 여부를 묻는 문제 사실 시간,공간 복잡도가 중요한 문제라, 어떻게 하면 Loop 한개로 풀지 고민했다 이 경우 정방향으로 먼저 Loop를 돌면서 value를 배열에 저장해두고, Loop를 역방향으로 한번 더 돌면서 정방향과 짝지를 이루는지 점검해보면 된다.
2021.02.09 -
[Stack] Valid Parentheses
Given a string s containing just the characters '(', ')', '{', '}', '[' and ']', determine if the input string is valid. An input string is valid if: Open brackets must be closed by the same type of brackets. Open brackets must be closed in the correct order. 예전에 라인코테에서 똑같은 문제가 나왔었다. 당연히 스택문제이고, 정상적으로 bracket이 닫히려면 bracket의 종류와 순서를 보면 된다. 괄호는 열린괄호와 닫힌괄호로 나누어 관리한다. 짝이 있으므로 key-value관계에 착안하여 map으로..
2021.02.09 -
[정리] Mongoose (2) 도큐먼트와 쿼리
1) Document - 몽구스는 기본단위로 Document를 가진다. 이는 모델의 인스턴스이다. - Model 역시 기본적으로 Document 클래스에 해당된다. 몽구스의 특정 메소드로 쿼리를 처리하고 난 후에도 Document 자료형이 반환된다. 2) save( ) - save의 결과는 promise를 리턴한다. - save는 middleware와 validation을 실행할 수 있지만, findOneAndUpdate나 update구문은 불가능하다. - save( )는 미들웨어다. findOneAndUpdate등의 쿼리는 미들웨어를 실행시키지 않는다. 그래서 save처럼 비동기처리가 불가능하다. 3) SubDocuments - Document 객체의 하나의 컬럼으로 다시 객체를 갖는 경우 - Nest..
2021.02.09 -
[정리] Mongoose (1) 스키마와 모델
1) Schema와 type의 정의 - 모든 스키마는 MongoDB의 콜렉션과 매핑되어 있다. 각 property의 자료형을 지정하여 Schema 객체를 생성한다. 이때 실제로 type과 schema에서 정의하는 type은 다르다. schema에 key를 type으로 설정하고 자료형을 정의한다면, 얘는 API가 스키마에 쉽게 접근하기 위한 방법이 될 뿐이지, 실제로 DB에 type으로 들어간다는 보장은 없다. - 각 type에 대한 다양한 옵션들이 존재한다. (mongoosejs.com/docs/schematypes.html 참고하자) - 그 후 API에서 직접 사용할 모델 인스턴스를 만들어 내보낸다. 실제 API들은 모델 인스턴스(예시코드의 경우 CBSModel)에 접근하여 find 등의 쿼리로직을 수..
2021.02.08 -
[이슈] useCallback의 empty array 조건
켄도 라이브러리를 사용하다가 grid의 cell을 custom으로 가공할 일이 생겼다 예시 코드처럼 이벤트를 받아 ActivityReportButton이라는 컴포넌트를 리턴한다. 그런데 문제는 한칸의 cell만 변경하더라도 모든 cell이 리턴 작업을 수행한다는 것이다. useCallback으로 이를 해결할 수 있다. 사실 함수는 바뀌지 않으므로 매번 동일하게 ActivityReportButton을 리턴하면 된다. 다만 ActivityReportButton 컴포넌트 내부 로직에 state가 있기 때문에, state가 변경되는 cell만 컴포넌트가 리렌더링 된다. useCallback의 두번째 인자로 빈 배열을 설정하면, 항상 바로 직전의 함수를 수행한다. (즉, state가 변하지 않는 이상 mount ..
2021.02.05