본문 바로가기

Coding Test96

[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.
코드카타 못 푼 문제 (재귀 함수) (최단 경로?) 매일 진행하는 코드카타 매일 진행하는 코드카타에 처음으로 못 푸는 문제가 나왔습니다!! 아주 좋네요!! 매일 못 푸는 문제가 나왔으면 좋겠습니다. 페어 프로그래밍 짝과 10분 가량 이야기해본 결과 재귀함수로 풀어야 한다는건 알겠는데 풀이를 모르겠다는 의견으로 합일되서 답을 보고 이해해보기로 했습니다. 구글링을 통해 아래 해답을 찾았고, 아래 해답을 한명씩 돌아가며 { 설명 : 키보드 } 역할을 해보았습니다. 그리고 마지막은 누가누가 외운거 빨리 치나 경쟁도 해봤습니다. ㅋㅋ 재귀함수 문제는 항상 어렵다고 느껴지는데, 이 문제는 이해하고 답을 외우는 형태로 가니 오히려 이해가 된것 같은 느낌이네요. 재귀함수 많이 풀어봐야겠습니다. 문제 양수로 이루어진 m x n 그리드를 인자로 드립니다. 상단 왼쪽에서 시.. 2022. 8. 18.
[Javascript] (프로그래머스 level 2) 피보나치 수 💡 구글에 Javascript 풀이가 많이 없거나, 배운 점이 있으면 포스팅합니다. 내 풀이 function solution(n) { const dp = new Array(n + 1).fill(0); dp[0] = 0; dp[1] = 1; for (let i = 2; i < n + 1; i++) { dp[i] = (dp[i - 2] + dp[i - 1]) % 1234567; } return dp[n]; } 일반 풀이로는 속도 제한에 걸려 DP로 풀었다. DP 개념은 대충 알고 있어가지고 생각나는대로 풀었는데 일단은 맞았다… 근데… 이제 DP로 풀어야 하는 문제가 나오는건가… 하는 생각에 두렵다.. ㅠ 생각 FE는 이제 과제 전형으로 대부분 바뀌는 추세인데,,, 문제 풀이를 계속 하는게 정답일까? 라는 생.. 2022. 8. 15.
[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 = { &#39;IV&#39;: -2, &#39;IX&#39;: -2, &#39;XL&#39;: -20, &#39;XC&#39;: -20, &#39;CD&#39;: -200, &#39;CM&#39;: -200 } const romanNums = { &#39;I&#39;: 1, &#39;V&#39;: 5, &#39;X&#39;: 10, &#39;L&#39;: .. 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.