Today I Learned Programmers 문제 풀기 Programmers 문제 풀기 다항식 더하기 나의 풀이 function solution(polynomial) { const array = polynomial.split(" ").filter((v) => v !== "+"); const answer = array.reduce((acc, cur) => { if ( cur.includes("x") ) { cur.length === 1 ? acc[0] += 1 : acc[0] += parseInt(cur) } else if ( !isNaN(parseInt(cur)) ) { acc[1] += parseInt(cur) } return acc }, [0,0]) return (answer[0] ? answe..
Today I Learned Programmers 문제 풀기 Programmers 문제 풀기 문자열 밀기 나의 풀이 function solution(A, B) { let array = A.split(""); if ( A === B ) return 0; for ( i = 1; i (b+b).indexOf(a) 문자열 b와 b를 더한 후에 indexOf 메서드로 a가 있는지를 탐색한다. indexOf()는일치하는 값이 없을 때 -1을 반환하는 속성을 가지고 있기 때문에 문자열 밀기가 불가능한 경우를 예외 처리해 줄 필요도 없다! 다른 사람의 풀이 02 function solution(A, B) { if (A===B) return 0; for (let i = 0; i < A.length; i++) { A = ..
Today I Learned 기술면접 스터디 기술면접 스터디 CS 지식 요소는 왜 요소의 자식 요소여야만 하나요? 정렬되지 않은 목록(unordered list)을 나타낼 때 사용 목록 안의 항목(list item)을 나타냄 과 요소는 최소 하나 이상의 요소를 자식으로 가져야 한다. 목록 태그에 링크 걸기 2 은 직계자식요소로 만 올 수 있기 때문에 목록 태그에 앵커 태그를 적용시킬 때는 2번 코드처럼 안에 를 작성해야 한다. HTML에서 요소는 목록을 나타내는 요소이며, 해당 목록의 각 항목은 요소로 구성된다. 따라서 요소의 자식 요소는 반드시 요소이어야 한다. 이는 HTML의 구조적인 규칙 중 하나로, 이를 따르지 않으면 문서 구조가 불완전하거나 잘못된 구조를 가질 수 있기 때문이다. 또한 웹 브라우..
Today I Learned Programmers 문제 풀기 기술면접 스터디 Programmers 문제 풀기 등수 매기기 나의 풀이 function solution(score) { const average_array = score.map((item) => (item[0] + item[1]) / 2); const sorted_array = [...average_array].sort((a,b) => b-a); return average_array.map((v) => sorted_array.indexOf(v)+1); } 두 과목의 점수를 평균내서 average_array를 만들고 이 배열을 내림차순으로 sort 해서 sorted_array를 생성한다. 그리고 average_array를 map을 돌려서 sort..
Today I Learned Programmers 문제 풀기 기술면접 스터디 Programmers 문제 풀기 직사각형 넓이 구하기 나의 풀이 function solution(dots) { let xDots = []; let yDots = []; dots.forEach((v) => { xDots.push(v[0]); yDots.push(v[1]); }); return Math.abs(Math.max(...xDots) - Math.min(...xDots)) * Math.abs(Math.max(...yDots) - Math.min(...yDots)); } x와 y 좌표를 배열로 따로 만든 후에 각 배열의 최솟값, 최댓값을 이용해 직사각형의 넓이를 구한다. 다른 사람들 풀이 보니까 다들 비슷하게 풀었는데 내 답..
Today I Learned Programmers 문제 풀기 기술면접 스터디 Programmers 문제 풀기 외계어 사전 나의 풀이 function solution(spell, dic) { return dic.filter((str) => str.split("").sort().join("") === spell.sort().join("")).length > 0 ? 1 : 2; } dic 배열을 filter를 돌려서 각 문자열 요소를 배열로 만든 후 sort, join한 문자열이 spell을 sort, join한 문자열과 일치한 것만 필터링한다. filter한 배열의 length가 0 이상이라면(spell에 담긴 알파벳을 한번씩만 모두 사용한 단어가 dic이 있다면) 1을 반환하고 아니면 2를 반환한다. +)..
Today I Learned Programmers 문제 풀기 기술면접 스터디 원티드 프리온보 프론트엔드 챌린지 강의 수강 Programmers 문제 풀기 잘라서 배열로 저장하기 나의 풀이 function solution(my_str, n) { let count = 0; let answer = []; while ( count < Math.ceil(my_str.length/n)) { answer.push(my_str.slice(count*n,(count*n)+n)) count++ } return answer; } while문도 한 번 써보고 싶어서 for문이 아닌 while문을 이용해서 풀었다. my_str 문자열을 n으로 나누고 while문을 돌면서 문자열을 slice한 후에 배열에 push한다. 다른 사..
Today I Learned Programmers 문제 풀기 기술면접 답변 정리 Programmers 문제 풀기 공 던지기 나의 풀이 function solution(numbers, k) { let answer = (2*k-1) % numbers.length; return answer === 0 ? numbers.length : answer; } 처음에는 뭔가 for문을 써야 하나 고민했지만 문제를 테스트 케이스를 직접 손으로 써보며 풀어보니 패턴이 보였다. 그래서 처음에는 (2*k-1) % numbers.length로 답을 써서 제출했는데 케이스 2개가 통과되지 않아서 고민했는데 (2*k-1) % numbers.length의 값이 0이 나올 때 예외처리를 추가해 주니 해결되었다. 다른 사람의 풀이 fu..
Today I Learend Programmers 문제 풀기 기술면접 답변 정리 Programmers 문제 풀기 진료순서 정하기 나의 풀이 function solution(emergency) { let array = [...emergency].sort((a,b) => b - a) return emergency.map((v) => array.indexOf(v) + 1); } sort 메서드를 이용해서 emergency를 내림차순으로 (응급 순서가 높은 순으로) 정렬한 배열을 만든다. 그리고 기존 emergency 배열에 map을 돌리는데 이때 내림차순으로 정렬한 배열 array에서 해당 요소를 찾아 index+1을 출력한다. 다른 사람들 풀이 보니 다들 비슷하게 푼 거 같다! 한 번만 등장한 문자 나의 풀..
Today I Learned Programmers 문제 풀기 기술면접 스터디 기술면접 답변 준비 Programmers 문제 풀기 가까운 수 나의 풀이 function solution(array, n) { let array2 = array.sort((a,b) => a-b).map((num) => Math.abs(n-num)) let index = array2.indexOf(Math.min(...array2)) return array[index] } 처음에는 sort를 사용하지 않고 그냥 map만 돌려서 n-num을 한 절댓값으로 배열을 가공한 후에 해당 배열에서 최솟값을 가진 index를 찾아서 문제를 풀었다. 그런데 이렇게 했을 때 "가장 가까운 수가 여러 개일 경우 더 작은 수를 return합니다."라..