LeetCode [JS] > 1128. Number of Equivalent Domino Pairs
·
🔒Algorithm
문제링크https://leetcode.com/problems/number-of-equivalent-domino-pairs/description/풀이처음 푼 방식이다. 어렵지 않게 풀 수 있었으며 시작 복잡도는 O(n) 이다. 지금 생각해보면 굳이 arr.sort()를 통해 정렬한뒤 join으로 새로운 배열을 생성한 뒤 다시 연산을 할게 아니고 처음 arr를 순회하면서 모든 연산을 처리할 수 있었다. 이런 개선점들이 보여 한번 더 정리를 했다. (하단 2번째 코드 확인)/** * @param {number[][]} dominoes * @return {number} */var numEquivDominoPairs = function (dominoes) { dominoes = dominoes.map((ar..
LeetCode [JS] > 859. Buddy strings
·
🔒Algorithm
📌문제링크https://leetcode.com/problems/buddy-strings/🔨문제풀이이 문제는 s, goal 이 서로 완전히 동일한 문자일 때, 문자열 길이가 다를때, 문자중에 2개만 다를때를 분기처리하여 풀면 된다. 결국 경우를 파악할 수 있어야 한다. 조금만 생각하면 쉽게 풀 수 있다. 시간복잡도는 O(n)이다. 완전히 동일한 문자열일 때는 s 문자중 중복되는 문자가 있으면 해당 문자끼리 순서를 바꿔도 동일한 문자열이 되는데 이를 확인하기 위해 나는 Set() 객체를 썻다. Set 객체는 얼핏보면 시간 복잡도가 O(n^2) 처럼 보일 수 있는데 Set객체는 내부적으로 Hash Table을 사용하여 실제론 O(n) 이다. /** * @param {string} s * @param {st..
LeetCode[JS] > 2718. Sum of Matrix After Queries
·
🔒Algorithm
문제링크https://leetcode.com/problems/sum-of-matrix-after-queries/description/문제풀이이 문제를 아무 생각없이 순서대로 구현하여 답을 도출 시 memory heap size 초과를 맞딱드리게 된다. 2차원 배열을 만들어 해당 배열을 조작하는 대신 나는 Set 객체를 이용하여 연산횟수를 최소화 하였다. 뒤에 있는 쿼리일수록 기존 배열의 값을 override 하기 때문에 맨뒤의 쿼리부터 순회하면서 값을 계산하면 된다. /** * @param {number} n * @param {number[][]} queries * @return {number} */var matrixSumQueries = function (n, queries) { let sum =..