월 15,400원
5개월 할부 시다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
섹션5 - 3. 연속부분수열1
안녕하세요 강의 잘 듣고 있습니다 ^^ 이 문제에서 for문을 사용하셨는데 이전 강의들처럼 while문을 사용해도 되나요?? while(p1<test.length && p2<test.length){} 이렇게 for문 대신 while문을 돌리면서 while 안에 내용은 강의랑 유사하게 해도 될까요???
- 미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
결정알고리즘이 어떤건가요?
안녕하세요 강사님. 결정알고리즘이 정확히 어떤내용인지 이해가 되지않아 질문드립니다. 구글링을해봐도 내용이 나오질않아서요,,ㅠㅠ 혹시 이 강의에서만 쓰이는 개념인가요?
- 미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
cnt++와 cnt+=1의 차이점
function solution(arr){ let answer=0; let cnt=0; for(let x of arr){ if(x===1){ console.log(cnt++) answer+=cnt; } else{cnt=0;} } return answer } let arr=[1, 0, 1, 1, 1, 0, 0, 1, 1, 0]; console.log(solution(arr)); 선생님의 풀이에서 cnt++를 console.log로 찍어보면 0,0,1,2,0,1 이 출력됩니다. 그러나 cnt++이 아니라 cnt+=1을 쓰면 1,1,2,3,1,2 로 정상적으로 출력되구요. 왜 이런 차이가 발생하는 걸까요?
- 미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
채점프로그램 문의드립니다.
안녕하세요. 강의 댓글을 보다가 궁금한것이 생겨 질문드립니다. 풀이에 대해 채점을 해보라는 답변을 보았는데 혹시 채점프로그램이 따로 존재하나요?
- 미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
안녕하세요 코드 리뷰 부탁드립니다! 섹션 5 - 5
항상 선생님 수업 잘 듣고 있습니다! 이렇게 하면 괜찮은지 한번 봐주시면 감사하겠습니다!항상 부족한 실력이지만 선생님 덕분에 조금씩 늘고 있습니다. 오늘도 좋은 하루 보내시길 바랍니다. function solution(k, arr) { let lt = 0, sum = 0, max = 0, count = 0; for (let rt = 0; rt < arr.length; rt++) { sum += arr[rt]; count++; if (max < sum) max = sum; while (count === k) { sum -= arr[lt++]; count -= 1; } } return max; } let a = [12, 15, 11, 20, 25, 10, 20, 19, 13, 15]; console.log(solution(3, a));
- 미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
섹션 8을 수강하며 궁금한 점이 있습니다..
섹션8.재귀함수와완전탐색(DFS:깊이우선탐색)을 전부 들었는데요. 아직은 알듯 말듯한 느낌이있는데특히나 자신이 없는 부분이어떤 경우에 방문 체크를 해야하고, 또 어떤 경우에는 방문 체크 없이 구현해야 하는지.. 잘 감이 안옵니다. 혹시 규칙같은게..있나요?
- 미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
Map.get 시간복잡도 질문
/** * solution * @param {array} vote : 투표 배열 */ function solution(vote) { const voteMap = new Map(); let answer = ''; let maxCount = 0; vote.forEach(function (item) { //투표 이력이 없을 경우 set, 있을 경우 카운팅 추가 voteMap.has(item) ? voteMap.set(item, voteMap.get(item) + 1) : voteMap.set(item, 1); if (voteMap.get(item) > maxCount) { maxCount = voteMap.get(item); answer = item; } }); return answer; } const answer = solution(['B', 'A', 'C', 'B', 'A', 'C', 'C', 'A', 'C', 'C', 'B', 'D', 'E', 'D', 'E']); console.log(answer); //C (5) 안녕하세요 저는 max값을 치환할 때 map을 순회하지 않고 map에서 지원하는 get메서드를 사용해서 해당 투표 값을 받아왔는데 시간복잡도에 영향이 가는지 궁금합니다.
- 미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
안녕하세요.
안녕하세요! 강의를 듣다가 아무리 자료를 찾아봐도 어려운부분이 있어 질문을 드립니다. 16을 구하기 위해 첫줄의 숫자가 각각 [1,3,3,1]번씩 곱해진다는것은 이해가 되었는데 1 3 3 1을 바로 조합 3C0, 3C1, 3C2, 3C3 으로 연결시키는 부분이 이해가 잘 안됩니다ㅠㅠ.. 3C0, 3C1, 3C2, 3C3 이 계산하면 각각 1,3,3,1이 된다는것은 알겠지만 단순히 계산값이 아니라 어떠한 공식이 있는건가요?
- 미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
[섹션4-뒤집은 소수]에서 변수 질문 있습니다
안녕하세요 강의 잘 듣고 있습니다 섹션4에 2. 뒤집은 소수에서 질문이 있습니다 아래 a번과 같이 변수 res를 사용하면 결과값이 잘 나오는데요 b번과 같이 변수없이 그냥 x의 결과를 출력하면 숫자로 나오고 적용이 하나도 안되네요 여기서 꼭 변수를 사용해야 하는 이유가 궁금합니다 제가 이 문제를 혼자 풀면 변수를 생성하지 않을 것 같아서요 a번 for(let x of arr){ let res = x.toString().split('').reverse().join(''); console.log(res); } b번 for(let x of arr){ x.toString().split('').reverse().join(''); console.log(x); }
- 미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
아나그램 문제 질문있습니다.
<html> <head> <meta charset="UTF-8" /> <title>출력결과</title> </head> <body> <script> function solution(str1, str2) { let answer = "YES"; let hs = new Map(); for (let x of str1) { if (hs.has(x)) hs.set(x, hs.get(x) + 1); else hs.set(x, 1); } for (let x of str2) { if (!hs.has(x) || hs.get(x) === 0) return "NO"; hs.set(x, hs.get(x) - 1); } return answer; } let a = "abaCCD"; let b = "CCaab"; console.log(solution(a, b)); </script> </body> </html> //알려주신 코드로 새로운 예시를 넣어 실행해보면 YES가 나옵니다. 실제로는 아나그램이 아니기 때문에 NO가 나와야되는데 말이죠. // 위코드에 헛점이 있어서 코드 수정이 필요해 보여서 문의드립니다
- 해결됨자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
인접리스트만
안녕하세요. 선생님 덕분에 알고리즘 공부 너무 재미있게 하고 있습니다 :) 인접리스트가 인접행렬에 비해 속도의 장점이 있는데, 인접리스트로만 경로탐색 문제를 풀어도 무방한가요?
- 미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
다중for문에서 변수
cnt를 초기화할 때 k for문 전 또는 후 어디에서 입력해야하는지 또 pi, pj = 0을 왜 k for문 바로 안에 입력해야하는지 너무 헷갈리는데 어떻게 이해해야할까요..? 이 문제뿐 아니라 다른 문제에서도 헷갈려서 애를먹고 있네요 if문도 마찬가지입니다..
- 미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
질문드립니다
안녕하세요. 늘 강의 잘 듣고있습니다! 학습방향에 관해 궁금한것이 있어 질문드립니다. 그리디까지 풀면서 느낀바가 문제를 보면 어떤 알고리즘을 적용해야할지 잘 떠오르지가 않습니다,, 예를들어 문제를 읽었을 때 정렬하라는 문제인것은 알아도 삽입 정렬일지, 버블정렬일지등이 잘 떠오르지 않는것 같습니다. 문제를 더 많이 풀어보면 새로운 문제를 보았을 때 어떤 알고리즘을 적용해야하는지 바로 떠올릴 수 있을까요? 혹시 양적으로 어느정도는 풀어야 익숙해질 수 있을까요?..
- 미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
이렇게 풀어도 되나요? 제가 잘 이해한건지 모르겠네요.
const arr = [6, 7, 11]; function solution(values) { let min, max; let sum = values[0] + values[1] + values[2]; min = Math.min(...values); max = Math.max(...values); if (sum < max + min) { console.log("no"); } else { console.log("yes"); } } console.log(solution(arr));:1 문의하기를 이용해주세요.
- 미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
선생님! 질문 있습니다!
Stack을 활용한다 생각하고 문제를 풀었는데요! 해설 풀이 하신 것엔 한 번의 반목분을 돌았으니, 제 코드가 비효율적으로 구성된 걸까요?? (시간 복잡도 면에서) function solution(s) { let answer = "YES"; let stack = []; for (let i = 0; i < s.length; i++) { stack.push(s[i]); } for (let j = s.length - 1; j >= 0; j--) { if (stack.pop() !== s[j]) answer = "NO"; } console.log(answer); } solution("gooG");
- 미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
for문내 금액체크용 if문 질문드립니다!
안녕하세요. 항상 강의 잘 듣고있습니다! 감사합니다. 혹시 4.졸업선물 약15:10분쯤에 마지막 중첩 for문 내 if문을 두번 사용하셨는데 혹시 if~else로 만 처리하면 문제가 될까요? if를 두번 사용하면 비교연산이 2번 발생하는데 if~else이면 한번이면 될 것 같아서요! for(let j=0; j<n; j++){ if(j!==i && (product[j][0]+product[j][1])>money) break; if(j!==i && (product[j][0]+product[j][1])<=money){ money-=(product[j][0]+product[j][1]); cnt++; } } 해당 코드를 하단의 코드로 바꿔도 문제가 안될지 질문드립니다! for(let j=0; j<n; j++){ if(j!==i && (product[j][0]+product[j][1])<=money){ money-=(product[j][0]+product[j][1]); cnt++; }else break; }
- 미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
질문이 있습니다
선생님 방식으로도 연습해보고 다른 방식으로도 풀 수 있는지 연습하고 있는데요아래 방식처럼 이중포문으로 돌리는 방식으로 풀어봤는데물론 효율성면에서는 재귀보다 떨어지겠지만, 아래 풀이도 유효한 풀이인가요? function solution(time,arr) { console.log(arr) let answer = null; for(let i = 0; i < arr.length; i++) { let t = 0; let sum = 0; for(let j =i; j < arr.length; j++) { t+=arr[j][1]; if(t > time) { t-=arr[j][1]; continue; } else { sum += arr[j][0]; answer = Math.max(answer,sum); } } } return answer; } let params = [ [10,5],[25,12],[15,8],[6,3],[7,4] ] console.log(solution(20,params))
- 미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
재귀는 아니지만 이 방법은 어떠신지 여쭤볼 수 있을까요?
function solution(max,dogs) { let answer = ''; let sum = dogs.reduce((a,b)=>a+b,0); while(sum > max) { let min = Math.min(...dogs); let minIdx = dogs.splice(dogs.indexOf(min),1); sum = sum - minIdx; } answer = sum; return answer; } console.log(solution(259,[81,58,42,33,61]))
- 미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
혹시 반례가 있을까요?
//2D 배열에서 indexOf() 메소드로 포함 여부를 판단할 수 없기 때문에 별개의 function을 만들었습니다! function isItIncluded(array1, array2) { for (let i = 0; i < array1.length; i++) { if (array1[i][0] == array2[0] && array1[i][1] == array2[1]) { return true; } } return false; } function solution(tests) { let tempArr = []; let trueAnswer = []; for (test of tests) { let numStud = test.length; // = 4 for (let i = 0; i < numStud - 1; i++) { for (let j = i + 1; j < numStud; j++) { tempArr.push([test[i], test[j]]) } } } for (let i = 0; i < tempArr.length; i++) { let reversed = [...tempArr[i]].reverse(); if (isItIncluded(tempArr, reversed) == false) { if (isItIncluded(trueAnswer, tempArr[i]) == false) { trueAnswer.push(tempArr[i]); } } } //console.log(trueAnswer); return trueAnswer.length; }
- 미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
신입개발자인데 이중배열문제도못푸니까
회의감드네요 .....진짜 ........ 아........왜이렇게멍청하지.............