월 15,400원
5개월 할부 시다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
풀이입니다.
<html> <head> <meta charset="UTF-8"> <title>출력결과</title> </head> <body> <script> function solution(a, b, c){ let arr = [a,b,c] let sort = arr.sort((a,b) => a-b); return sort[0] + sort[1] <= sort[2] ? "NO" : "YES" } console.log(solution(13,4, 17)); </script> </body> </html>이런식으로 풀어도 괜찮은가요?
- 미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
이해되지 않는 부분이 있어서 질문드립니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. rt-lt+1의 값이 왜 카운트 해야 하는 값이랑 일치하는 걸까요?최종적으로 카운트 해야 하는 값이 같다는건 알겠는데 왜 같은지 이해가 안됩니다ㅠㅠ
- 미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
풀어보았습니다. 감사합니다.
감사합니다.function solution(arr) { const answer = []; let max = 0; arr.map((v) => { const value = String(v); let sum = 0; for (let i = 0; i < value.length; i++) { sum += Number(value[i]); } if (max <= sum) { max = sum; answer.push(v); } }); return Math.max(...answer); } console.log(solution([128, 460, 603, 40, 521, 137, 123])); 동영상을 보고 완벽한 코드가 아니란걸 알았습니다 ㅜㅜ 수정합니다.function solution(arr) { let answer = ""; let max = 0; arr.map((v) => { const value = String(v); let sum = 0; for (let i = 0; i < value.length; i++) { sum += Number(value[i]); } if (max < sum) { max = sum; answer = v; } else if (sum === max) { answer = answer > v ? answer : v; } }); return answer; } console.log(solution([128, 460, 603, 40, 521, 137, 123]));
- 미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
괄호 개수 카운
이런식으로 괄호의 개수를 카운트 해서 짜봤는데 괜찮은가요??<html> <head> <meta charset="UTF-8"> <title>출력결과</title> </head> <body> <script> function solution(s){ let answer="YES"; let array1 = []; let array2 = []; for(let a of s){ if(a ==="(") array1.push(a); if(a===")")array2.push(a); } if(array1.length!==array2.length) answer=false; return answer; } let a="(()(()))(()"; console.log(solution(a)); </script> </body> </html>
- 미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
영상 보기전에 직접 풀어보았습니다.
감사합니다.function solution(str) { const answer = []; let char = ""; let count = 0; str.split("").filter((v, i) => { if (i === 0) { char = v; answer.push(v); } if (char === v) count++; else { if (count > 1) answer.push(count); answer.push(v); char = v; count = 1; } if (i === str.length - 1) if (count > 1) answer.push(count); }); return answer.join(""); } //console.log(solution("KKHSSSSSSSEE")); //console.log(solution("KKHSSSPPPEE")); console.log(solution("KKHSSTTPPSEE"));
- 미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
for of문에서 let을 사용하시는 이유가 있을까요?
for ( const of array )가 아닌, for ( let of array )를 사용하시는 이유가 궁금합니다. 원본 배열 인덱스의 값을 지키려는 의도면 const가 맞지 안나해서요
- 미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
시간 복잡도
혹시 이렇게 풀면 시간 복잡도는 어떨까요 ?<html> <head> <meta charset="UTF-8" /> <title>출력결과</title> </head> <body> <script> function solution(arr1, arr2) { let answer = []; arr1.map((a, i) => { if (arr2.includes(a)) { answer.push(a); } }); return answer.sort((a, b) => a - b); } let a = [1, 3, 9, 5, 2]; let b = [3, 2, 5, 7, 8]; console.log(solution(a, b)); </script> </body> </html>
- 미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
선생님 머리를 싸메고 풀어 봤습니다.
혹시 이 코드를 더 효율적으로 짤 수 있는 방법이 있을까요? /** * @param { string } str * @param { string } x * */ function solution(str, x) { const originStr = str.split(''); const indexArr = []; const result = []; for (let i = 0; i < str.length; i++) { if (originStr[i] === x) { indexArr.push(i); } }; for (let i = 0; i < originStr.length; i++) { const matchResult = []; for (let j = 0; j < indexArr.length; j++) { matchResult.push({ val : Math.abs(indexArr[j] - i), idx: j }); }; result.push(matchResult.sort((a, b) => { return a.val - b.val })[0].val); }; return result; }; console.log(solution('teachermode', 'e'));
- 미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
챕터3의 5.문자열 압축
5.문자열 압축에서 s=s+' ' ;을 사용해서 문자열을 하나더 늘려준다는것은 이해했습니다.다만 혼자 문제를 풀당시 해당 작업을 하지않아도 값이 올바르게 나오며 오류가 나지 않았는데 왜 오류가 나지않을까요?
- 미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
연속부분수열2(Two Pointers Algorithm)
안녕하세요. M = 5let a=[6, 3, 1, 2, 3];혹시 만약 처음부터 배열에 6이 들어가있다면 5보다 큰경우가 될텐데 그럼 rt-lt+1이 때문에 안될꺼같은데 이런경우 어떻게 될까요..?
- 미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
이렇게 작성해도 괜찮은걸까요?
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
- 미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
머리를 열심히 굴려서 정답을 맞추는 코드를 작성 하였지만, 마음에 안듭니다 ㅠㅠ
모든 e를 찾아서 해당 위치를 배열에 담고, 루프를 돌려서 제일 최소 거리를 구해서 리턴 하게끔 만들었으나, 무언가 마음에 들지 않네요. 질문 올리고 강사님 강의를 바로 보겠습니다! function solution(str, str2) { const findAry = []; for (let i = 0; i < str.length; i++) { if (str[i] === str2) findAry.push(i); } return str.split("").map((v, index) => { const max = []; for (const value of findAry) { max.push(Math.abs(value - index)); } eturn max.sort((a, b) => a - b)[0]; }); } console.log(solution("teachermode","e"));
- 미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
아스키코드로 숫자만 추출하여 풀어 보았습니다.
자연수를 만들어야 되니 제일 첫번째가 0이 오면 안되므로 replace 정규식을 활용 했습니다.function solution(args) { const originalArray = []; for (const val of args) { if (val.charCodeAt() >= 48 && val.charCodeAt() <= 57) { originalArray.push(val); } } return originalArray.join("").replace(/^0/, ""); } console.log(solution("tge0a1h205er")); console.log(solution("g0en2T0s8eSoft"));
- 미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
회문검사 알파벳을 위하여 아스키코드를 활용 해보았습니다.
감사합니다.function solution(args) { let answer = "YES"; const char = args.toLowerCase(); const originalArray = []; for (const val of char) { if (val.charCodeAt() >= 97 && val.charCodeAt() <= 122) { originalArray.push(val); } } if (originalArray.join("") !== originalArray.reverse().join("")) answer = "NO"; return answer; } console.log(solution("found7, time: study; Yduts; emit, 7Dnuof"));
- 미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
소문자로 바꾼후에 reverse를 통해서 구해보았습니다
감사합니다.function solution(args) { return args.toLowerCase().split("").join("") === args.toLowerCase().split("").reverse().join("") ? "YES" : "NO"; } console.log(solution("gooG"));
- 미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
section2 - 2.보이는학생 질문입니다 !
function solution(arr){ answer = 0; arr[0] ? answer += 1 : '' for (let i=1; i<arr.length; i++){ if(arr[i]>arr[i-1]) answer += 1 else if(arr[i] === arr[i-1]) answer -= 1 } return answer; } let arr=[130, 135, 148, 140, 145, 150, 150, 153]; console.log(solution(arr));위 내용처럼 작성해도 문제없는 코드일까요??
- 미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
이러한 방식도 가능할까여??
4중 for문이 이해가 안가 이런식으로 만들어봤는데 혹시 가능한가요? <html> <head> <meta charset="UTF-8"> <title>출력결과</title> </head> <body> <script> function solution(test){ let mathScore = {}; let possible = false; let answer=0; test.map((t)=>{ t.map((t2,index)=>{ mathScore[t2] = mathScore[t2]? [...mathScore[t2],index+1]:[index+1] }) }) for(let i =1; i<test.length+1; i++){ for(let j=1; j<test.length+1; j++){ if(i!==j){ for(let k=0; k<test.length; k++){ if(mathScore[i][k] < mathScore[j][k]){ possible= true; } } } } possible?answer++:null possible = false; } return answer; } let arr=[[3, 4, 1, 2], [4, 3, 2, 1], [3, 1, 4, 2]]; console.log(solution(arr)); </script> </body> </html>
- 미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
이중for문으로 조건에 맞는 케이스를 찾아서 풀어보았습니다 뿌듯!
열심히 풀었습니다! function solution(array) { let answer = 0; for (let i = 0; i < array.length; i++) { for (let j = 0; j < array[i].length; j++) { const result = []; const target = array[i][j]; const left = array[i][j - 1] ?? 0; const right = array[i][j + 1] ?? 0; const top = i > 0 ? array[i - 1][j] : 0; const bottom = i < array.length - 1 ? array[i + 1][j] : 0; result.push(target); result.push(left); result.push(right); result.push(top); result.push(bottom); if (target === result.sort((a, b) => b - a)[0]) answer++; } } return answer; } console.log( solution([ [5, 3, 7, 2, 3], [3, 7, 1, 6, 1], [7, 2, 5, 3, 4], [4, 3, 6, 4, 1], [8, 7, 3, 5, 2], ]) );
- 미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
와 이제 슬슬 어려워 지는것 같네요.
2차원 배열이라 이중 for문이 편해서 이중 for문으로 풀어 보았습니다.function solution(array) { let answer = []; let sum1 = Array.from({ length: array.length }, (v, i) => 0); let sum2 = Array.from({ length: array.length }, (v, i) => 0); let sum3 = 0; let sum4 = 0; for (let i = 0; i < array.length; i++) { for (let j = 0; j < array[i].length; j++) { sum1[i] += array[i][j]; sum2[i] += array[j][i]; if (i === j) sum3 += array[i][j]; if (i === array.length - 1 - j) sum4 += array[i][j]; } } const maxSum1 = sum1.sort((a, b) => b - a); const maxSum2 = sum2.sort((a, b) => b - a); answer.push(maxSum1[0]); answer.push(maxSum2[0]); answer.push(sum3); answer.push(sum4); return answer.sort((a, b) => b - a)[0]; } console.log( solution([ [10, 13, 10, 12, 15], [12, 39, 30, 23, 11], [11, 25, 50, 53, 15], [19, 27, 29, 37, 27], [19, 13, 30, 13, 19], ]) );코드 피드백 해주시면 정말 감사하고 아니여도 괜찮습니다!
- 미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
map과 filter를 이용하여 풀어보았습니다.
반복문 한가지로 해볼려고 했으나, 안될것 같네요 ㅠㅠ function solution(array) { return array.map((v) => { return array.length - array.filter((z) => v >= z).length + 1; }); } //console.log(solution([87, 92, 92, 92, 76])); console.log(solution([87, 89, 92, 100, 76]));