일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 |
- db
- 자바
- 알고리즘
- DFS
- TypeScript
- 다이나믹 프로그래밍
- react
- network
- 안드로이드
- Python
- Data Structure
- git
- java
- Algorithm
- BFS
- 리트코드
- Graph
- frontend
- 프로그래머스
- 백준
- CS
- Database
- Redux
- vscode
- LeetCode
- 동적 계획법
- 그레이들
- DP
- Javascript
- VIM
- Today
- Total
목록코딩 문제/LeetCode (22)
늘 겸손하게

안녕하세요 besforyou입니다 이번 글은 LeetCode 890 - Find and Replace Return 입니다 문제 해석과 풀이가 꽤나 까다로운 문제였습니다. 문제 해설 문자열 배열 words와 문자열 pattern이 주어질때 패턴에 맞는 문자열을 배열에 담아 반환하라. 정답은 어떤 순서로 와도 상관없다. 패턴에 맞는 문자열이란 배열 words에서 현재 참조 중인 문자열과, 문자열 pattern에 있는 모든 문자 x를 p(x)로 바꾸었을때의 문자열이 동일하다면 패턴에 맞는 문자열이라고 합니다. 배열 words의 원소중에서 패턴에 맞는 문자열을 찾아서 배열에 저장한 뒤, 반환하는 함수를 만들어야합니다. 문제 풀이 단계순으로 설명하겠습니다. 1. 문자열 pattern의 문자들로 배열을 만듭니다. ..

안녕하세요 besforyou입니다. 이번 글은 LeetCode 문제 2032 - Two Out of Three 풀이입니다. 문제 풀이 숫자가 배열에 존재하는지 존재하지 않는지가 중요한 문제이므로 집합을 사용하면 간편하게 구현 가능합니다. 각 배열의 원소들을 서로 다른 집합에 저장하는 동시에 배열에 존재하는 모든 원소를 담을 집합도 생성합니다. 그 후, 모든 원소를 담고 있는 집합의 원소를 순차적으로 참조하면서 현재 참조 중인 원소가 다른 몇 개의 집합에 존재하는 지를 세어 2개 이상의 집합에 존재한다면 정답 배열에 삽입합니다. 모든 원소를 한번씩 참조했다면 정답 배열을 반환합니다. 코드 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 ..

안녕하세요 besforyou입니다 이번 글은 리트코드 1207번 문제입니다 문제 설명 배열이 주어졌을때 각각의 원소 출현횟수가 모두 unique하다면(모두 다르다면) true를 반환하고, 아니라면 false를 반환하라. 문제 풀이 map을 만들어서 각 원소의 출현횟수를 저장합니다. set을 만들어서 출현횟수를 원소로 저장하되, 출현횟수가 겹친다면 false를 반환합니다. 출현횟수가 한 번도 겹치지 않았다면 true를 반환합니다. 코드 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 var uniqueOccurrences = function (arr) { let myMap = new Map(); for (let num of arr) { if (myMap.has(n..

안녕하세요 besforyou입니다. 이번 글은 리트코드 111번 문제입니다. 문제 설명 이진 트리가 주어졌을 때 최소 깊이를 구하라. 최소 깊이는 루트 노드로부터 가장 가까운 leaf 노드까지 갈 때 거쳐가는 노드의 개수입니다. 문제 풀이 깊이 우선 탐색(DFS)법으로 탐색하되 leaf 노드를 만나면 전역 변수로 선언해 높은 변수와 현재 깊이를 비교하여 현재 깊이 값이 더 작다면 변수를 교환합니다. 코드 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 var minDepth = function(root) { let min = 100001; let dfs = function(root, depth) { if(!root) return; if(!root.left ..