일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- DailyLeetCoding
- SinglyLinkedList
- leetcode
- A* Algorithm
- Leedcode
- sorting
- Hashtable
- VCS
- hash table
- python3
- dfs
- Union Find
- BFS
- 구현
- greedy
- stack
- Easy
- Two Pointers
- graph
- Medium
- LinkedList
- hash
- ArrayList vs LinkedList
- Java
- 자료구조
- array
- 광연자동차운전면허학원
- Bellman-Ford
- heap
- String
- Today
- Total
목록코테/LeetCode(Solve) (55)
Min IT's Devlog
풀이 일자: 22.09.02 난이도: [Easy] 문제 내용 주어진 트리에서 각 level별 val의 평균값의 list를 반환하는 문제 문제 해결 흐름 1. 트리에서 각 level별 node의 평균값을 return해야 한다. → 트리 순환 방법중 DFS와 BFS가 있는데 이 문제의 경우에는 둘의 방식의 차이일뿐 어떤 것을 써도 괜찮을 것 같다. 일단 구현하기 쉬운 DFS를 이용해서 풀어보자. 2. DFS로 풀어본다고 했는데 어떤 방식으로 구현하면 좋을까? → 어제의 문제의 풀이를 참고하여 deque를 이용하여 DFS를 구현하고 두번째 요소에 level을 표시하여 각 level별로 sum과 원소의 개수를 저장해두자. # Definition for a binary tree node. # class TreeN..
풀이 일자: 22.09.01 난이도: [Medium] 분류: [Binary Tree/DFS] 문제 내용 주어진 Tree를 가지고 level이 올라가면서 지나온 경로의 node값보다 현재 node값이 큰 node의 갯수를 세는 문제였다. 한마디로 아래로 내려가면서 오름차순을 지키는 값을 가지는 노드 수를 물어보는 문제였다. 문제 해결 흐름 1. 일단 Tree이고 요소의 값을 확인을 해야하니까 Tree순회가 필요하겠는데.. DFS와 BFS중 어떤 것이 좋을까? → 아래로 내려가면서 루트로부터 자신의 경로 이전까지의 수보다 큰지를 확인해야하니까 DFS가 이 문제에 적합하겠네! 2. 현재의 값이 경로에 있는 수들과의 대소 비교가 필요하겠다 → 해당 경로에서 큰 수를 보관을 해서 계속해서 파라미터로 넘겨주는 것이..
풀이 일자: 22.08.18 난이도: [Medium] 문제 내용 주어진 integer array를 가지고 해당 array의 length를 반 이하로 줄일 때 최소한의 빼야하는 숫자의 개수에 대한 문제였다. arr = [3,3,3,3,5,5,5,2,2,7] → 이런식으로 주어졌을 때 3과 7을 뺀다면 남는 array는 [5,5,5,2,2]가 되게 되면서 기존의 1/2가 되게 된다. 문제 해결 흐름 1. 우선 중복되는 수를 몇 개씩 있는지 check를 해야겠다. → Dictionary를 이용하여 각각 몇개씩 있는지 세자. 2. 어떤 원소를 빼야 하는지가 아니라 최소한 빼야하는 원소의 개수에 대한 문제이니까 갯수에 대한 정보만 있으면 되겠네! → Dictionary의 value값만을 가져와서 list로 저장해..
풀이 일자: 22.08.17 난이도: [Easy] 문제 내용 여러 단어가 담겨있는 words 배열의 각각의 단어의 Unique한 조합이 몇 개인지 구하는 문제였다. "gin" -> "--...-." "zen" -> "--...-." → 이런식으로 다른 문자더라도 같은 모스부호 조합이 나올 수 있다. 문제 해결 흐름 1. 우선 각 alphabet마다의 모스부호의 규칙이 따로 없기 때문에 해당 정보를 미리 저장해두어야겠다. → 배열 형식으로 저장한다. 2. Unique한 조합을 찾기 때문에 미리 이전에 나왔던 모스부호 조합에 대한 정보를 저장해두어야겠다. → 만약 나오지 않았다면 갯수를 +1하면서 해당 정보를 저장한다. 3. 앞서 배열정보로 저장해둔 각 문자별 모스부호의 접근 방식은 어떻게 하면 좋을까? →..
풀이 일자: 22.08.16 난이도: [Easy] 문제 내용 주어진 문자열 s안에서 1번만 나온 문자의 가장 첫번째 index를 반환하는 문제 문제 해결 흐름 1. 1번만 나오는 문자를 체크하기 위해서는 문자의 개수를 세야겠다. → 중복은 하나로 처리해야하고 탐색도 해야하기 때문에 Dictionary(Hash)를 사용하면 좋겠다. 2. 가장 첫번째 index를 반환하려면 순서에 대한 정보를 가지고 있어야겠다. → 새로운 문자가 들어올때마다 append로 넣고 동일한 문자가 들어오면 remove로 없앨 수 있도록 list를 사용하자. 3. 첫번째 index를 찾자 → str.find()를 이용하여 찾고 만약에 candidate가 비었다면 다 중복이 있다는 이야기임으로 -1을 리턴하자. class Solut..