본문 바로가기

Coding Test/JavaScript60

[Javascript] (프로그래머스 level 2) 카펫 [Javascript] (프로그래머스 level 2) 카펫 💡 구글에 Javascript 풀이가 많이 없거나, 배운 점이 있으면 포스팅합니다. 내 풀이 function solution(brown, yellow) { for (let i = 1; i 2022. 9. 30.
[Javascript] (프로그래머스 level 2) 올바른 괄호 [Javascript] (프로그래머스 level 2) 올바른 괄호 💡 구글에 Javascript 풀이가 많이 없거나, 배운 점이 있으면 포스팅합니다. 내 풀이 function solution(s){ let count = 0; for (let i = 0; i < s.length; i++) { if (s[i] === &#39;(&#39;) { count++; continue; } else if (s[i] === &#39;)&#39;) { count--; } if (count < 0) { return false } } return count === 0; } 스택 문제라는 걸 알고 있어서 push() pop()을 통해 풀었더니 “시간 초과”가 뜨네요.. 그래서 그냥 위 코드 처럼 count해서 ‘(’ 이면 ++.. 2022. 9. 29.
[Javascript] (프로그래머스) 짝지어 제거하기 (level 2) [Javascript] (프로그래머스) 짝지어 제거하기 (level 2) 💡 구글에 Javascript 풀이가 많이 없거나, 배운 점이 있으면 포스팅합니다. 내 풀이 function solution(s) { const stack = [&#39;&#39;]; for (let i = 0; i < s.length; i++) { let curIndex = stack.push(s[i]) - 1; if (stack[curIndex - 1] === stack[curIndex]) { stack.pop(); stack.pop(); } } return stack.length === 1 ? 1 : 0; } 투포인터로 돌리려고 코드를 짜고 있었습니다. 근데 갑자기 이게 도대체 뭐하는 짓이지… 라는 현타가 오면서 더 좋은 방법.. 2022. 9. 28.
[Javascript] (프로그래머스) 최솟값 구하기 (level 2) [Javascript] (프로그래머스) 최솟값 구하기 (level 2) 💡 구글에 Javascript 풀이가 많이 없거나, 배운 점이 있으면 포스팅합니다. 내 풀이 function solution(A,B){ A.sort((x,y) => y - x); B.sort((x,y) => x - y); let minMultiple = 0; A.forEach((a, i) => minMultiple += A[i] * B[i]); return minMultiple } 어떻게 해야 최솟값이 나올지 모르겠어서 설마 모든 경우의 수 다 돌리는건가? 생각을 했습니다. 역시나 수학적 해결방법이 있었습니다. ㅎㅎ 부족한 모습이 아쉽지만 하나씩 알아가는거겠죠? ㅎㅎ 최솟값과 최댓값을 곱하는 식으로 해서 곱해지는 숫자의 평균이 가장 .. 2022. 9. 27.
코드카타 못 푼 문제 (재귀 함수) (최단 경로?) 매일 진행하는 코드카타 매일 진행하는 코드카타에 처음으로 못 푸는 문제가 나왔습니다!! 아주 좋네요!! 매일 못 푸는 문제가 나왔으면 좋겠습니다. 페어 프로그래밍 짝과 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] (백준 11170) 0의 개수 [Javascript] (백준 11170) 0의 개수 💡 구글에 Javascript 풀이가 많이 없거나, 배운 점이 있으면 포스팅합니다. 내 풀이 //* 인풋 (디폴트) const filePath = process.platform === &#39;linux&#39; ? &#39;/dev/stdin&#39; : &#39;./input.txt&#39;; const input = require(&#39;fs&#39;).readFileSync(filePath).toString().trim().split(&#39;\n&#39;); //* 인풋 (커스텀) const n = +input[0]; let answer = []; for (let i = 0; i < n; i++) { const nums = input[i +.. 2022. 7. 9.
[Javascript] (백준 1969) DNA [Javascript] (백준 1969) DNA 💡 구글에 Javascript 풀이가 많이 없거나, 배운 점이 있으면 포스팅합니다. 내 풀이 //* 인풋 (디폴트) const filePath = process.platform === &#39;linux&#39; ? &#39;/dev/stdin&#39; : &#39;./input.txt&#39;; const input = require(&#39;fs&#39;).readFileSync(filePath).toString().trim().split(&#39;\n&#39;); //* 인풋 (커스텀) const [n, m] = input[0].split(&#39; &#39;).map((x) => +x); const DNAs = []; for (let i = 0; i.. 2022. 7. 9.
[Javascript] (프로그래머스 level 1) 약수의 개수와 덧셈 [Javascript] (프로그래머스 level 1) 약수의 개수와 덧셈 💡 구글에 Javascript 풀이가 많이 없거나, 배운 점이 있으면 포스팅합니다. 내 풀이 function solution(left, right) { let answer = 0; for (let i = left; i 2022. 7. 8.
[Javascript] (프로그래머스 level 1) 로또의 최고 순위와 최저 순위 [Javascript] (프로그래머스 level 1) 로또의 최고 순위와 최저 순위 💡 구글에 Javascript 풀이가 많이 없거나, 배운 점이 있으면 포스팅합니다. 내 풀이 function solution(lottos, win_nums) { // 배열 두개 비교해서 같은 넘버인놈 갯수 카운트, // 최저는 카운트 등수 // 최고는 카운트 + 0의 갯수 등수 let zeros = lottos.filter((x) => x === 0).length; let count = 0; for (let winNum of win_nums) { for (let pickNum of lottos) { if (pickNum === winNum) { count++; } } } let result = [6, 6, 5, 4, 3,.. 2022. 7. 6.