월 15,400원
5개월 할부 시다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
코드 리뷰 부탁드립니다!
function solution(m, product) { let count = 0; let sumResult = []; for (let i = 0; i < product.length; i++) { product[i][0] /= 2; let sum = 0; let priceSum = [...product].map((price) => price[0] + price[1]); priceSum.sort((a, b) => a - b); for (let j = 0; j < priceSum.length; j++) { sum += priceSum[j]; count++; if (sum > m) { sumResult.push(j); break; } } product[i][0] *= 2; } return Math.max(...sumResult); }4-4 졸업선물 풀어보았는데요강사님과 너무 다르게 풀어서 시간복잡도 면에서 자신이 없네요ㅜ
- 미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
아나그램 문제의 전제조건이 있나요??
let a = "AbaAeCeo"; let b = "baeeACA";아나그램 찾는 문제에서 두 문자는 문자의 개수는 각가 다를 수 있지만 동일한 문자를 사용한다는 전제조건 하에 아나그램 여부를 찾는 건가요?위와 같이 a에는 'o'가 있고 b에는 없을때 yes를 리턴합니다 let a = "AbaAeCe"; let b = "baeeACAo";위와 같이 b에는 있고 a에는 있을때 no를 리턴합니다. function solution(str1, str2) { let hs1 = new Map(); let hs2 = new Map(); let answer = true; for (let x of str1) { if (!hs1.has(x)) { hs1.set(x, 1); } else { hs1.set(x, hs1.get(x) + 1); } } for (let x of str2) { if (!hs1.has(x) || hs1.get(x) === 0) return "No"; hs1.set(x, hs1.get(x) - 1); } return answer; } let a = "AbaAeCe"; let b = "baeeACAo"; console.log(solution(a, b));
- 미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
const가 이런 경우에는 왜 오류가 안나는거죠 ?
function solution(s) { s = "gg"; return s; } const str = "gooG"; console.log(solution(str));예제를 하다가 보통 solution에게 매개변수로 넘겨주는 값이 let로 되어 있어서 const로 바꾸어 보았는데요 str은 const이고 solution 함수로 전달되어서 str값을 변경을 시켜주었는데 오류가 안나고 변경이 되더라구요 const는 상수이고 변할수 없는 값인데요 이런경우 어떻게 변할수가 있는거죠 ?
- 해결됨자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
새로만든 addArr에 대한 forEach
안녕하세요 음.. 동작방식이 제 생각과 달라서 질문 남깁니다. 우선은 입력값에(arr)각 행마다 왼쪽과 오른쪽에 0을 넣어주고 그다음 arr에 첫번째와 끝에 addArr이라는 배열을 추가해줬습니다.그런데 코드를 이렇게 짜면즉 먼저 addArr을 넣어주고 그다음 arr의 각 행의 처음과 끝마다 0을 삽입해줬더니 arr의 처음과 끝에 넣어줬던 addArr들은 요런식으로 제가 의도했던 0의 갯수가 length +2(7)가 아닌 9개가 됐는데요이러한 이유에 대해서 답변을 받을 수 있을까요?
- 미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
격자판 최대합: 18번째 줄에 최대값 비교할때 answer은 왜 포함하는건가요?
Math.max(sum1, sum2);대각선 구할 때는 이미 앤서에 행렬의 합 중 최대값이 들어가있어서 앤서를 포함하여 max값을 찾는 것 같은데,18번째 줄에 최초 max를 구할 때는 왜 앤서를 포함해서 최대값을 구하는건지 궁금합니다.그리고 앤서의 초기값을 let answer=0 으로 줘도 상관없나요?
- 미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
시간복잡도가 크게 올라갈까요??
function solution(s, t) { let answer = []; let count = 0; for (let i = 0; i < s.length; i++) { if (s[i] === t) { count = 0; answer.push(count); } else { count++; answer.push(Math.min(count, s.slice(i).indexOf(t))); } } return answer.join(" "); } let str = "teachermode"; console.log(solution(str, "e"));3-4 가장 짧은 문자거리를 이렇게 풀어보았는데요,강사님이 풀이하신 것과 비교해서 시간복잡도가 크게 증가할까요??
- 미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
for문 사용 관련 질문
Math 메소드로 무작위 숫자 3개를 뽑아서 min으로 하는 방법으로 접근을 했는데 하던 도중 궁금증이 생겨서 질문합니다. function RandomNum() { const number = Math.floor(Math.random() * 100); } for (i = 1; i < 4; i++) { RandomNum(); }이렇게 for문으로 3번 돌려서 3개의 숫자를 얻었는데 그 얻은 숫자를 각각 변수에 저장할 수 있는 방법을 알고 싶습니다. 그렇게 해서 그 변수 3개로 min을 쓰려고 했거든요.그리고 혹시 이 숫자들을 html에서 보려면 어떻게 가져와야 하나요?
- 미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
arr[p1++] 와 같이 코드를 짜도 되는 건가요
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.answer.push(arr1[p1++])답중에 이런게 있는데 answer.push(arr1[p])p++이걸 줄인것 같은데 위와 같이 코딩해도 되는건지 모르겠네요
- 미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
문제 풀이 스타일 관련하여 질문드립니다.
function solution(n) { let answer if (n > 1) answer = [...solution(n - 1), n] else answer = [n] return answer } console.log(solution(3))안녕하세요.해당 문제 풀이 관련하여 2가지 질문이 있습니다.1. 강의에서는 DFS 이너함수를 선언하여 한 단계의 뎁스를 두고 재귀호출 하여 푸셨는데,위의 풀이처럼 solution 함수자체를 재귀호출하는 경우 조심해야할 엣지케이스나 지양해야 할 이유가 있을까요? 2. 강의 예제에서는 DFS 함수 내부에서 console.log로 출력하는 방식으로 출력하셨는데,해당 출력예제 같은 경우 일반적으로 배열타입을 아웃풋으로 가지던데, js 콜스택을 설명하기 위하여 그러신건지, 아니면 다른 이유가 있으신지 궁금합니다. 감사합니다.
- 미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
다른 방식으로 풀어보았는데, 효율적인 코드가 맞는지 확인 부탁드리겠습니다!
function solution(s: string, t: string) { let answer = 0; t = t.split("").sort().join(""); for (let i = 0; i < s.length; i++) { const slideStr = s.slice(i, i + t.length); console.log(slideStr); if (slideStr.split("").sort().join("") === t) answer++; } return answer; } console.log(solution("bacaAacba", "abc"));선생님께서 풀어주신 방식이랑 너무 달라, 이 방식도 효율적인지 확신이 안서서요. 제 코드 한 번 확인 부탁드리겠습니다.
- 미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
++과 +=1 의 성능상 차이가 있나요?
function solution(s, t) { let answer = 0; for(let i of s){ if(i===t) answer ++; / +=1과 ++의 차이점은 뭘까? } return answer; } 안녕하세요 강사님섹션1-10 문자찾기 문제에서 answer ++를 쓰셨는데, answer +=1과 answer ++의 차이점이 혹시 성능상 차이가 있을까요??
- 미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
이렇게 풀어도 될까요?
function solution(nums) { for (let i = 0; i < nums.length - 1; i++) { let key = i + 1; for (let j = i; j >= 0; j--) { if (nums[key] < nums[j]) { [nums[key], nums[j]] = [nums[j], nums[key]]; key--; } } } return nums; }
- 해결됨자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
반례가 없는지, 시간복잡도는 괜찮은지 궁금합니다!
const sol = (arr, n) => { let p1 = 0, cnt = 0; while (p1 < arr.length) { arr.slice(p1++).reduce((acc, cur) => { const result = acc + cur; if (result === n) cnt++; return result; }, 0); } const answer = cnt; return answer; };
- 미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
빅오 시간 복잡도 알려주세요!!!!!!
function solution(scores) { let scoreGroup = {}; let result = []; scores.forEach((score, i) => { if (scoreGroup[score] === undefined) { scoreGroup[score] = []; } scoreGroup[score].push(i); }); let rank = scores.length; // 아래 부분 시간 복잡도 질문합니다. Object.keys(scoreGroup).forEach((key) => { rank -= scoreGroup[key].length - 1; scoreGroup[key].forEach((index) => { result[index] = rank; }); rank -= 1; }); return result; }제가 짠 코드는 다음과 같습니다.Q) 여기서 이 부분 시간 복잡도가 O(n)인가요 O(n^2)인가요??Object.keys(scoreGroup).forEach((key) => { rank -= scoreGroup[key].length - 1; scoreGroup[key].forEach((index) => { result[index] = rank; }); rank -= 1; });forEach가 이중으로 실행되지만 key가 n개면 각 value 길이는 1이 되고, key가 1개이면 각 value 길이가 n이 되는 상황이라서 O(n)인거 같은데... 정확하게 알려주시면 감사하겠습니다😭
- 미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
반례는 어떻게 찾으시는건가요~?
요러케해도 될까용..?
- 미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
코드 평가 부탁드립니다.
function solution(m, arr) { let sum = 0, cases = 0, i = 0; for (let j = 0; j < arr.length; j++) { if (sum <= m) { cases++; } sum += arr[j]; if (sum <= m) { cases++; } while (sum > m) { sum -= arr[i++]; if (sum <= m) cases++; } } return cases; }sum에 arr[j]를 더하고 한번더 if문을 사용했는데 맞는 코드인지 평가 부탁드립니다.
- 미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
삽입정렬 질문입니다!
function solution(arr) { let answer = arr; for (let i = 0; i < arr.length; i++) { let temp = arr[i]; for (let j = i - 1; j >= 0; j--) { if (arr[j] > temp) { arr[j + 1] = arr[j]; } else { break; } arr[j] = temp; } } return answer; } let arr = [11, 7, 5, 6, 10, 9]; console.log(solution(arr));강의에서 진행해주신 풀이방법과 유사합니다!다만, let j;를 i for문내에서 선언해주지않고, j for문내에서 break되었을 때 다음 이터레이션으로 넘어가니, if ... else문 밖에 arr[j] = temp 해줘도 문제없다고 생각해서 이렇게 풀었습니다.혹시 문제될 만한 부분이 있을까요,,,? 제가 잘못이해하고 있는건가요 ㅠㅠ?
- 미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
6번 홀수 문제 왜 실행이 안될까요? ㅠㅠ
<html><head><meta charset="UTF-8"><title>출력결과</title></head><body><script>function solution(arr){let answer=[];let sum=0, min=1000;for(i=0; i<arr.length; i++) {if((arr[i] % 2) == 1) {sum = sum + arr[i];if(arr[i]<min) {min = arr[i];}}}answer.push(sum);answer.push(min);return answer; }arr=[12, 77, 38, 41, 53, 92, 85]; console.log(solution(arr)); </script></body></html>
- 미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
9-7 섬나라 아일랜드 문제
안녕하세요 강의 잘듣고있습니다dx, dy 를 구할때 시계방향으로 짜라고하셨는데왜 항상 시작은 -1,0인 9시부터 시계방향으로 가신건가요? 시계방향이기만 하면 상관없다는 말씀이신건가요?
- 미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
toUpperCase() 만 사용해도 될지 질문드립니다.
안녕하세요 본 문제 풀이에서는 소문자인 경우에만 대문자로 변경해주었는데 다음과 같이 조건문 없이 전체문자열에 toUpperCase() 함수를 적용시켰을 때 발생하는 문제점이 있을까요?function solution(s){ let answer=""; for(let x of s) answer+=x.toUpperCase(); return answer; }