본문 바로가기

Leetcode

(106)
[Leetcode] 383. Ransom Note - JS https://leetcode.com/problems/ransom-note/description/?envType=study-plan-v2&envId=top-interview-150  1. 문제 분석문제분석--------------------- ransomNote, magazine 두 문자열이 주어진다.- magazine으로 ransomNote가 구성될 수 있으면 true, 그렇지 않으면 false를 반환하라.- magazine에 있는 각 문자는 ransomNote에 한번씩만 사용될 수 있다.제한조건--------------------- 1  2. 접근 방법접근방법--------------------magazine 의 hashMap을 만들어 갯수를 카운팅한다.ransomNote를 순회하여 hashMap에서..
[Leetcode] 289. Game of Life - JS https://leetcode.com/problems/game-of-life/description/?envType=study-plan-v2&envId=top-interview-150  1. 문제 분석문제분석--------------------- 초기값 cell에 live면 1, dead면 0으로 나타난 m x n 구조- 각 cell은 8명의 이웃과 아래 4개의 규칙에 따라 상호작용한다.조건 1. 이웃한 cell 중 live가 2개 미만일 때, 자기 자신이 live면 죽는다.조건 2. 이웃한 cell 중 live가 2 ~ 3개일 때, 자기 자신이 live면 유지된다. 조건 3. 이웃한 cell 중 live가 3개 초과이고, 자기 자신이 live면 죽는다.조건 4. 이웃한 cell 중 정확히 3개 live가..
[Leetcode] 73. Set Matrix Zeroes - JS https://leetcode.com/problems/set-matrix-zeroes/description/?envType=study-plan-v2&envId=top-interview-150  1. 문제 분석문제분석--------------------- m x n 정수 행렬 matrix가 주어진다.- 요소가 0인 위치의 행, 열의 다른 요소들도 0으로 제자리에서 변경하라.제한조건--------------------- m == matrix.length- n == matrix[0].length- 1  2. 접근 방법접근방법--------------------0의 (i, j) 좌표를 알아내어, matrix[i][~] = 0 matrix[~][j] = 0 으로 바꿔준다.0이 여러 개 일수 있는데, 0의 i 좌표..
[Leetcode] 48. Rotate Image - JS https://leetcode.com/problems/rotate-image/?envType=study-plan-v2&envId=top-interview-150    1. 문제 분석문제분석--------------------- n x n 2차원 배열이 주어지면 이를 제자리에서 90도 시계 방향으로 돌려라.- 또 다른 2차원 배열에 할당하지 말라 !제한조건--------------------- n == matrix.length == matrix[i].length- 1  2. 접근 방법접근방법 Transpose(전치) + Reverse(좌우반전)--------------------1. 행과 열을 대각선을 기준으로 swap 한다.2. 행의 요소를 역순정렬한다.   3. 코드var rotate = functio..
[Leetcode] 54. Spiral Matrix - JS https://leetcode.com/problems/spiral-matrix/description/?envType=study-plan-v2&envId=top-interview-150    1. 문제 분석문제분석--------------------- m x n 행렬이 주어질 때, 나선 순서로 반환하라.제한조건--------------------- m === matrix.length- n == matrix[i].length- 1  2. 접근 방법접근방법--------------------left, right, top, bottom 포지션을 미리 지정해두고 각 지점별로 조건을 걸어 나선 순서를 만들어준다.예를 들어, 첫번째로 좌->우 방향으로 순서를 추가한 뒤 top++두번째로 상->하 방향으로 순서를 추가..
[Leetcode] 36. Valid Sudoku - JS https://leetcode.com/problems/valid-sudoku/description/?envType=study-plan-v2&envId=top-interview-150    1. 문제 분석문제분석--------------------- 9 x 9 스도쿠가 유효한지 판단하라.1. 각 열은 반복없는 1-9로 구성된다.2. 각 행은 반복없는 1-9로 구성된다.3. 각 3 x 3 부분 박스는 반복없는 1-9로 구성된다.제한조건--------------------- board.length === 9- board[i].length === 9- board[i][j]는 1-9 또는 '.'이다. 2. 접근 방법접근방법--------------------row, col 중첩 반복문을 통해 rows, cols ..
[Leetcode] 76. Minimum Window Substring - JS https://leetcode.com/problems/minimum-window-substring/description/?envType=study-plan-v2&envId=top-interview-150   1. 문제 분석문제분석--------------------문자열 s, t와 이들의 길이 m, n이 각각 주어진다.중복을 포함한 t 안의 모든 문자가 s의 부분 문자열이 되는 최소 window를 반환하라.부분 문자열이 없다면 빈 문자열을 반환하라.제한조건--------------------- m == s.length- n == t.length- 1  2. 접근 방법접근방법 - Sliding Window + Hash Table--------------------t 문자열의 hash table을 만들고 s..
[Leetcode] 30. Substring with Concatenation of All Words - JS https://leetcode.com/problems/substring-with-concatenation-of-all-words/description/?envType=study-plan-v2&envId=top-interview-150  1. 문제 분석문제분석--------------------- 문자열 s, 문자열 배열 words가 주어진다.- words 배열 속 문자열은 동일한 길이를 가진다.- words 배열 속 단어들을 순서를 바꿔서 연결한 단어를 s가 부분 문자열로 포함하고 있는지 확인한다.예를 들어, s = "barfoothefoobarman", words = ["foo","bar"]words로 가능한 단어들은 'foobar', 'barfoo'가 있는데, s의 0번째 인덱스에 'barfoo's의..