[Level 2] H-Index - 정렬 | C++
[문제] 함수의 인자로 논문의 인용 횟수가 담긴 배열이 주어지는데, 여기서 H-index를 구해 반환하는 것이 문제이다. H-Index란 주어진 논문들 중 인용 횟수가 h번 이상인 논문이 h개 이상 존재하고, 나머지 논문은 h번 이하 인용된 것 중 가장 큰 h 값을 말한다. 말이 좀 어려운데 쉽게 설명해서 배열 [0, 0, 3, 6, 8, 10]이 주어졌다면, 6편의 논문들 중 h 이상의 값을 가지고 그것들이 h편 이상이면 된다. h가 0이라면 0 이상의 값을 0편 이상 가지고 있으므로 만족한다. 1이여도 만족하고 2여도 만족하고 3이여도 만족한다. 4는 4보다 크거나 같은 값이 3개밖에 없으므로 만족하지 않는다. 따라서 0,1,2,3 중 가장 큰 3이 H-Index가 된다. [풀이] 내 풀이 방법은 간..
2020. 5. 24.
[Easy] Leetcode | 101. Symmetric Tree | TREE BFS DFS
- 문제 주어진 이진 트리가 중심을 기준으로 대칭인지 판별한다. - 풀이 다른 여러가지 방법이 있겠지만, 내가 풀이한 방법은 다음과 같다. 1. root 노드를 기준으로 왼쪽 서브트리는 전위 순회(preorder)를 한 결과를 vector에 순서대로 저장한다. 2. root 노드를 기준으로 오른쪽 서브트리는 root-right-left 노드 순으로 순회한 결과를 vector에 순서대로 저장한다. 3. 위에서 구한 두 vector의 요소를 서로 비교하여 다른 요소가 있다면 false를 반환, 모두 같으면 true를 반환한다. 아래 코드에서 1번 예제인 [1, 2, 2, 3, 4, 4, 3] 트리를 예를 들어 위 방법을 적용해보면 다음과 같다. 1. leftSubTree: [2, 3, 4] 2. rightS..
2020. 4. 24.