이전 값 불러오기: $_ 콘솔에서 계산한 이전 값들을 불러올 수 있다. 이전에 선택한 DOM 요소 불러오기 $0: 제일 최근에 선택한 DOM요소 최대 5개까지 불러오기 가능
생각해보면 -1이 나올 경우가 N이 1과 3일때 뿐이어서 해당 숫자일 경우 -1을 리턴해줬다.나머지는 greedy 문제답게 최대한 5원짜리 동전을 많이쓰려했고, 많이쓰려했지만 나머지가 홀수일 경우 하나빼주면 짝수가 되서 무조건 2로 나누어 떨어지기 때문에 아래와 같이
문제 조건대로만 풀면 되는 문제.그나마 아이디어로는 cache를 set 자료구조로 둬서 이미 존재했던 수인지를 판단하기.이미 존재한 경우 루프를 빠져나오고 cache의 사이즈를 리턴하면 정답을 얻을 수 있다.
풀이 자체는 쉬웠다. 간선에 parent와 children이라는 변수를 저장해서 셋팅한 후에 찾고자하는 두 노드의 공통 조상을 찾기 위해 첫 번째 target1의 공통 조상을 모두 set 자료구조에 담고, 이후 두 번째 target2의 공통 조상을 탐색하면서 해당 조상
풀이방법은 루트에서 먼저 dfs로 가장 먼 끝점을 찾았을 때, 반드시 그 점이 지름에 해당하는 두 점중의 한 점이 된다.따라서 그 점을 찾고 그 점으로부터 한 번더 dfs를 돌려 최대 거리를 구해주면 된다.c.f. 참고로 n이 1일 경우에는 지름을 0으로 생각해서 예외
생각해보면 확률이 동일하기 때문에 leaf 노드에만 빗물이 쌓이게 된다.따라서 확률은 (leaf 노드의 수) / W가 된다. 그래서 leaf 노드의 수를 dfs로 찾아준 후에 정답을 반환했다.
개념 자체를 알고 있으면 쉬운 문제...싸이클이 없는 노드의 경우 무조건 해당 간선이 단절선이 된다.그리고 해당 정점에서 연결된 간선이 2개 이상일 경우 해당 정점이 단절점이 된다.
전위 순회로 초기에 돌기 때문에 첫 번째 값이 루트 노드가 된다.루트 노드를 정하고 data를 모두 확인하면서 이진 검색 트리를 만족하도록 트리를 구성했다.트리를 구성한 후에는 후위 순회를 돌아 출력하여 답을 구했다.
삭제되었다는 노드의 표시를 -2로 두고,삭제된 노드를 부모로 갖는 모든 노드를 삭제시킨다.그 후에 삭제가 되지 않았으면서 부모가 없는 노드의 갯수를 세서 리턴해주었다.
dfs, bfs 두 가지 모두 풀 수 있는 문제dfs는 보통 stack 또는 재귀를 활용해 풀고,bfs는 queue를 사용해서 푸는 것을 복습했다.
왼쪽에 최대힙, 중앙값, 오른쪽에 최소힙으로 구성한다.숫자를 입력받고, 현재 middle 값과 비교해서 왼쪽에 넣을지 오른쪽에 넣을지 비교.홀수개 입력받을 때마다 middle 값을 적절히 조절해준다.
maxHeap과, minHeap을 두 개 동시에 관리하면서 푸는 문제.두 개의 Heap의 sync를 맞춰야 해서 arr을 체크용으로 두고, 삭제되었는지를 판단해서 계산
메모리 제한이 12MB...minHeap을 하나 두고 입력을 받을 때마다 넣으면서 Heap의 사이즈가 N보다 커지만 계속 pop 해줘서 결과를 모두 수행한 Heap의 top이 정답이 되는 문제p.s. 이 문제도 NodeJS는....no답
우선순위 큐를 두 개(minHeap, maxHeap)두고, 각각의 sync를 조절해서 풀면 되는 문제.뭔가 이번 문제부터 Node.js로 풀면 백준의 경우 같은 로직이어도 메모리초과가 너무 빈번하게 일어나서 백준은 C++로만 풀어야 하나 싶다...
프로젝트 소개 상세스펙 요구사항 React Framework를 사용할 것 Function Component를 활용할 것 Javascript보다는 Typescript를 활용할 것 서버에 배포할 것 (Vercel과 같은 서비스를 이용해보세요) Context, Redux
HashMap을 이용해서 푸는 문제JS는 기본 object를 사용했고, C++은 map STL을 사용해서 풀었다.C++ map 사용법을 익힐 수 있었던 문제다.
c++의 priority_queue를 이용해서 풀었다.해당 자료구조의 사용법을 익힐 수 있는 문제였다.(compare 구조체 관련)이 문제는 JS에서 priority queue가 없어 나중에 priority queue 자료구조를 직접 만든 다음에 다시 풀어서 다시 글을
stack을 두 개 사용해서 푸는 문제정방향, 역방향으로 스택을 사용해서 현재 위치 기준으로 높은 것들의 집합의 개수를 더해준다. 그리고 자기 자신을 추가해서 이후에 찾는 빌딩의 높이가 더 낮을 경우 자기 자신도 더 높은 빌딩에 추가되므로 이렇게 계산한다.마지막으로 빌