본문 바로가기

Coding Test/LeetCode27

[Javascript] (LeetCode) 17. Letter Combinations of a Phone Number (Medium) [Javascript] (LeetCode Medium) 17. Letter Combinations of a Phone Number 💡 구글에 Javascript 풀이가 많이 없거나, 배운 점이 있으면 포스팅합니다. 내 풀이 /** * @param {string} digits * @return {string[]} */ //숫자들이 주어진다. // 숫자들은 각 후보가 주어진다. // 숫자들을 돌면서 어떤 후보가 뽑힐수있는지 모든 경우의 수를 잡는다. const letterMap = ['','','abc', 'def', 'ghi', 'jkl', 'mno', 'pqrs', 'tuv', 'wxyz' ] var letterCombinations = function(digits) { const result = [] .. 2023. 1. 1.
[Javascript] (LeetCode Medium) 841. Keys and Rooms 💡 구글에 Javascript 풀이가 많이 없거나, 배운 점이 있으면 포스팅합니다. 내 풀이 /** * @param {number[][]} rooms * @return {boolean} */ var canVisitAllRooms = function(rooms) { const visitedSet = new Set([0]) const keys = [0] let keyIndex = 0 while (keyIndex { if (!keys.includes(key)) { keys.push(key) } }) visitedSet.add(visiting) keyIndex++ } r.. 2022. 12. 21.
[Javascript] (LeetCode) 49. Group Anagrams(Medium) [Javascript] (LeetCode) 49. Group Anagrams(Medium) 💡 구글에 Javascript 풀이가 많이 없거나, 배운 점이 있으면 포스팅합니다. 서론 코드 카타에 해당 문제가 나왔는데, 완솔 하지 못하고 풀이를 보고 풀었네요! 프로젝트 기간에 바빠서 카타는 안하고 뒤늦게 푸는 중인데 Medium 수준도 나오고 정말 좋네요 ㅎㅎ (제 실력 대비) 어려운 문제 많이 풀어보면서 실력이 많이 늘었으면 좋겠습니다. 내 풀이 (풀다가 포기) /** * @param {string[]} strs * @return {string[][]} */ var groupAnagrams = function(strs) { // 새로운 배열을 만들고, // 객체에 알파벳 카운팅 // 객체 비교 => 같은 .. 2022. 9. 17.
[Javascript] (LeetCode) 21. Merge Two Sorted Lists (Easy) [Javascript] (LeetCode) 21. Merge Two Sorted Lists (Easy) 💡 구글에 Javascript 풀이가 많이 없거나, 배운 점이 있으면 포스팅합니다. 다른 사람 풀이 참고한 내 풀이 /** * Definition for singly-linked list. * function ListNode(val, next) { * this.val = (val===undefined ? 0 : val) * this.next = (next===undefined ? null : next) * } */ /** * @param {ListNode} list1 * @param {ListNode} list2 * @return {ListNode} */ var mergeTwoLists = functi.. 2022. 8. 9.
[Javascript] (LeetCode) 13. Roman to Integer (Easy) [Javascript] (LeetCode) 13. Roman to Integer (Easy) 💡 구글에 Javascript 풀이가 많이 없거나, 배운 점이 있으면 포스팅합니다. 내 풀이 /** * @param {string} s * @return {number} */ var romanToInt = function(s) { const baseArray = { 'IV': -2, 'IX': -2, 'XL': -20, 'XC': -20, 'CD': -200, 'CM': -200 } const romanNums = { 'I': 1, 'V': 5, 'X': 10, 'L': .. 2022. 8. 8.
[Javascript] (LeetCode) 206. Reverse Linked List (Easy) [Javascript] (LeetCode) 206. Reverse Linked List (Easy) 💡 구글에 Javascript 풀이가 많이 없거나, 배운 점이 있으면 포스팅합니다. 내 풀이 /** * Definition for singly-linked list. * function ListNode(val, next) { * this.val = (val===undefined ? 0 : val) * this.next = (next===undefined ? null : next) * } */ /** * @param {ListNode} head * @return {ListNode} */ var reverseList = function(head) { if (head === null || head.next ==.. 2022. 8. 8.
[Javascript] (LeetCode) 66. Plus One (Easy) [Javascript] (LeetCode) 66. Plus One (Easy) 💡 구글에 Javascript 풀이가 많이 없거나, 배운 점이 있으면 포스팅합니다. 내 풀이 /** * @param {number[]} digits * @return {number[]} */ var plusOne = function(digits) { for (let i = 0; i < digits.length; i++) { let idx = digits.length - 1 - i; if (digits[idx] !== 9) { digits[idx] += 1; return digits; } if (digits[idx] === 9) { digits[idx] = 0; if (idx === 0) { digits.unshift(1); r.. 2022. 8. 4.
[Javascript] (LeetCode) 28. Implement strStr() (Easy) [Javascript] (LeetCode) 28. Implement strStr() (Easy) 💡 구글에 Javascript 풀이가 많이 없거나, 배운 점이 있으면 포스팅합니다. 내 풀이 (메서드 없이) /** * @param {string} haystack * @param {string} needle * @return {number} */ var strStr = function(haystack, needle) { let matchCount = 0; let j = 0; for (let i = 0; i < haystack.length; i++) { if (haystack[i] === needle[j]) { for (let j = 0; j < needle.length; j++) { if (haystack[.. 2022. 8. 3.
[Javascript] (LeetCode) 8. String to Integer (atoi) (Medium) 💡 구글에 Javascript 풀이가 많이 없거나, 배운 점이 있으면 포스팅합니다. 내 풀이 /** * @param {string} s * @return {number} */ var myAtoi = function(s) { const strInfo = preTrimStr(s); strInfo[1] = postTrimStr(strInfo[1]); let sign = strInfo[0]; let str = strInfo[1]; let integer = strToInteger(str); integer = checkOverflowAndMakeClamp(integer, sign); return integer * sign; } function checkOverflowAndMakeClamp(num, sign) { i.. 2022. 8. 2.
[Javascript] (LeetCode) 125. Valid Palindrome (Easy) [Javascript] (LeetCode) 125. Valid Palindrome (Easy) 💡 구글에 Javascript 풀이가 많이 없거나, 배운 점이 있으면 포스팅합니다. 내 풀이 /** * @param {string} s * @return {boolean} */ var isPalindrome = function(s) { const regex = /[^a-z0-9]/g; const lowerS = s.toLowerCase().replace(regex, &#39;&#39;); return lowerS === lowerS.split(&#39;&#39;).reverse().join(&#39;&#39;); }; 정규식을 이용해서, (a-z, 0-9)가 아닌애들을 ‘’으로 replace해준다. 그리고 해당.. 2022. 7. 29.