월 15,400원
5개월 할부 시다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
forEach 익명함수 에러, 두번째 매개변수 argThis 관련 질문
섹션 1의 forEach, map, filter, reduce관련 강좌에서 막힌 점이 생겼습니다. 첫번째 사진에서, 강사님이 한것처럼 콜백함수를 function으로 작성했는데요, 에러가 뜹니다. 화살표 함수로 하니까 잘 실행이 되는데, 같은 의미의 코드인데 왜 에러가 뜬걸까요? 강사님 코드를 그대로 쓴건데도요. 두번째사진에서는 forEach의 두번째 파라미터가 argThis로 전달되어야하는데 즉, [1, 2]이 떠야하는데 본래 배열이 콘솔에 출력됩니다. 이 또한 강사님 코드 그대로 썼는데 저는 왜 이러한 결과가 나온건가요?
- 미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
섹션 2-5 등수 구하기 이런식으로 구현해도 될까요?
function solution(arr) { let answer = []; let arr2 = [...arr]; let sort = arr2.sort((a, b) => { return b - a; }); for (let i = 0; i < arr.length; i++) { answer.push(sort.indexOf(arr[i]) + 1); } return answer; } let arr = [87, 89, 92, 100, 76]; console.log(solution(arr)); arr을 스프레드 연산자로 복사하고 sort를 통해 역순으로 정리후 arr2에 할당한 다음 indexOf를 이용해서 index값으로 찾아도 될까요?
- 미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
안녕하세요 이렇게 코드를 짜도 문제가 없을까요?
<html> <head> <meta charset="UTF-8"> <title>출력결과</title> </head> <body> <script> function isPrime(x) { // 문자열뒤집기 let str = x.toString(); let sum = 0 for (let i = str.length - 1; i >= 0; i--) { sum += str[i]; } let num = parseInt(sum); for (let j = 2; j < num; j++) { if (num % j === 0) { return false; } } if (num !== 1) return num; } function solution(arr) { let answer = []; for (let x of arr) { if (isPrime(x)) { answer.push(isPrime(x)); } } return answer; } let arr = [32, 55, 62, 20, 250, 370, 200, 30, 100]; console.log(solution(arr)); </script> </body> </html> 강의 잘보고 있습니다. 최대한 혼자 짜보려 하는데 혼자 짜면짤수록 선생님 코드보단 심각하게 난잡하게 짜는감이 있어서 짜는 습관이나 그런것에 대하여 조언해주실것이 있으실까요?
- 미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
졸업선물 화살표함수 질문
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Document</title> </head> <body> <script> function solution(m, product){ let answer=0; n=product.length; product.sort((a, b)=>(a[0]+a[1])-(b[0]+b[1])); // console.log(product); for(let i=0; i<n; i++){ let money=m } return answer; } let arr = [[6,6], [2,2], [4,3], [4,5], [10,3]]; console.log(solution(28, arr)); </script> </body> </html> 이 코드에서 product.sort((a, b)=>(a[0]+a[1])-(b[0]+b[1])); 가 잘 이해되지 않습니다. (a[0]+a[1])-(b[0]+b[1])빼주면 왜 sort함수에 의해 정렬이 되는지 궁금합니다.
- 미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
코드 질문이요
function solution(arr) { let answer = 0; let arrLenth = arr.length; let test = 0; for (let i = 0; i < arrLenth; i++) { for (let j = 0; j < arrLenth; j++) { test++; if (arr[i - 1] && arr[i - 1][j] && arr[i - 1][j] > arr[i][j]) continue; if (arr[i + 1] && arr[i + 1][j] && arr[i + 1][j] > arr[i][j]) continue; if (arr[i][j - 1] && arr[i][j - 1] > arr[i][j]) continue; if (arr[i][j + 1] && arr[i][j + 1] > arr[i][j]) continue; answer++; } } console.log(answer); } 별로 안좋은 코드일까요?
- 미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
이건 재귀가 맞나요..?
(사진)
- 미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
while문 질문
let sum=0, tmp=x; while(tmp){ sum+=(tmp%10) console.log('(1)tmp 값',tmp); console.log('(1)sum 값',sum); tmp=Math.floor(tmp/10); console.log('(2)tmp 값',tmp); console.log('(2)sum 값',sum); } console.log('sum의 값',sum); 강의 잘 보고 있습니다. 위 코드에서 while문 질문입니다. 128(tmp)을 10으로 %하면 sum은 8, 다시 tmp를 10으로 나누면 이때 tmp는 12가 되는 것인가요?
- 미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
강의 7.10부제
function solution(day,arr){ let answer = 0; for(let x of arr){ if(x.toString().slice(-1)===day.toString) parseInt(x) answer++ } return answer; } arr=[25,23,11,47,53,17,33] console.log(solution(3, arr)) 7로 나오는데 어 느 부분을 수정해야하면 좋을지 조언을 구하고싶습니다. 감사합니다
- 미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
기타 풀이
function solution(str,char){ return str.length - str.replaceAll(char,"").length; } console.log(solution('COMPUTERPROGRAMMING','R'));
- 미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
11 line에 조건문 중 첫번째 조건 꼭 필요한가요?
!map2.has(key)라는 조건이 반드시 필요한 조건인지 궁금하네요. 두번째 조건인 map2.get(key)!==val 에서 어차피 해당 key가 없다면 undefined 될거같은데 반례가 있을까요?
- 미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
두칸씩 건너뛰는 의미
안녕하세요 강사님 1 2 3 4 5 6 7 저는 `한칸 또는 두칸씩 건너뛰면서` 라는 부분을 한칸 건너뛰기 : 1 -> 3 (2를 건너뛰고 3으로) 두칸 건너뛰기 : 1 -> 4 (2,3을 건너뛰고 4로) 위처럼 이해를 해서 3에 도착하는 경우의 수는 123 13 23 3 이렇게 4가지로 생각을 하고 풀었습니다ㅠㅠ 문제가 좀 헷갈리는거 같아요..
- 미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
자료구조
쌤 알고리즘은 이 강의로 대비하면 될 거 같은데 자료구조는 어떤 식으로 해야할까요 ㅠㅠ? 비전공자라 감이 안와서 질문드려요!
- 미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
연산자 조건문 대신 eval 사용해도 되나요?
if(x === '+') stack.push(lt + rt); else if(x === '-') stack.push(lt - rt); else if(x === '*') stack.push(lt * rt); else if(x === '/') stack.push(lt / rt); 이렇게 연산자 별로 조건문을 나눠서 푸시하셨는데 eval 을 사용해도 크게 상관없나요? stack.push(eval(lt+x+rt));
- 미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
코드 좀 봐주세요!!
function solution(str) { let answer = ''; let stack = []; for (let s of str) { if (s === '(') stack.push(s); else if (s === ')') stack.pop(); else { if (stack.length === 0) answer += s; } } return answer; } 이렇게 풀어도 될까요,,?
- 미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
반례를 알고 싶습니다!
const solution = (m, arr) => { let min = Math.floor(arr.reduce((acc, cur) => acc + cur, 0) / m); let sum = 0; let result = 0; for (let i = 0; i < arr.length; i++) { if (sum + arr[i] >= min) { result = sum + arr[i]; sum = 0; } sum += arr[i]; } return result; };
- 미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
이렇게도 풀어봤어요 :)
function solution(arr){ let answer=[]; let max = 0 let randomPick = [] while (max !== 100) { const random = Math.floor(Math.random() * arr.length); if (randomPick.findIndex((item) => item === random) === -1) { randomPick.push(random) max += arr[random] answer.push(arr[random]) } if (randomPick.length === arr.length) { if (max === 100) { break; } max = 0 randomPick = [] answer = [] } } return answer; } let arr=[20, 7, 23, 19, 10, 15, 25, 8, 13]; console.log(solution(arr));
- 미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
질문 있습니다!
저와 같은 경우 8섹션 문제들을 보면 대부분이 브루투스 포스, 그리디, 정렬에 관한 문제라고 떠오르게 되는데 알려주신 대로 문제를 보고 딱 이진 트리를 활용한 문제다 라고 명확하게 인식할 수 있는 방법은 없을까요?
- 미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
첫 번째 fgr 문 내 idx 질문
i =0일 때 for문 다 돌고 i = 1일 때 idx도 1이 되나요?? 또한 i = 1일 때 j는 2이고 arr[j=2] < arr[idx=1]이 맞나요?ㅎ for문의 순서도가 너무 헷갈려서요 ㅠㅠ 이럴 떄 어떻게 공부해야하는지 알려주시면 감사하겠습니다!ㅎ
- 미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
switch문을 사용해 풀어봤습니다
function rockScissorPaper2(a, b) { let answer = []; for(let i = 0; i < a.length; i++) { switch(true) { case a[i] === b[i]: answer.push('D'); break; case a[i] === 1 && b[i] === 2: case a[i] === 2 && b[i] === 3: case a[i] === 3 && b[i] === 1: answer.push('B'); break; case b[i] === 1 && a[i] === 2: case b[i] === 2 && a[i] === 3: case b[i] === 3 && a[i] === 1: answer.push('A'); break; } } console.log(answer); }
- 미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
반례가 있는지 여쭈어보려고 합니다!
const solution = (str1, str2) => { let result = 0; for (let i = 0; i < str1.length; i++) { let sum = ""; let pointer = i; let count = str2.length; while (count--) { sum += str1[pointer++]; } const sorted = sum.split("").sort().join(""); if (sorted === str2) result++; } return result; }; const result = solution("bacaAacba", "abc"); console.log(result);