[풀이] function solution(s) { return (s.length === 4 || s.length === 6) && s == parseInt(s); } 문제 그대로 풀어주면 된다. 근데 이때 s === parseInt(s); 를 했을 때는 테스트를 통과하지 못한다. === 를 쓰는 것이 권장사항인데 아마 === 가 == 보다 더 엄격하기 때문에 통과를 못하는 것 같기도 하다. [코드 리뷰] const a = 1; const b = '1'; console.log(a == b); // true console.log(a === b); // false 위에서 보듯이 == (동등 연산자)보다 === (일치 연산자)가 더 엄격하게 "타입" 체크를 해준다. 코딩테스트라는 특수한 경우긴 하지만 일반적으로..
전체 글
전개 구문은 ECMAScript6(2015)에서 새로 추가된 문법이다. 간단하게 이 문법은 문법 이름 그대로 객체 혹은 배열을 펼칠 수 있게 해준다. //펼칠 대상이 객체인 경우 {...obj} //펼칠 대상이 배열인 경우 [...arr] {...arr} 간단하게 배열이나 객체 앞에 점 세개 (...) 를 붙여주면 된다. 그대신 펼쳐진 객체나 배열을 담을 곳이 필요하다 → 객체는 객체로, 배열은 배열 또는 객체로 담을 수 있다. [새로운 배열 만들기] 전개 연산자를 활용해 새로운 배열을 만들 수 있다. ES5에서의 concat 메소드 보다 코드가 간결하고 가독성도 좋다. const arr1 = [1, 2, 3]; const arr2 = [4, 5, 6]; const arr3 = [7, 8, 9]; con..
[풀이] function solution(absolutes, signs) { let result = 0; for (let i = 0; i < signs.length; i++) { absolutes[i] = signs[i] ? absolutes[i] : -absolutes[i]; result += absolutes[i]; } return result; } 처음에는 absolute[i] 값을 받지 않고 삼항연산자만 작성했다. 계속 값이 받아지지 않았던 이유는 값 받을 곳을 만들지 않았기 때문이었다. 1. 결과값을 받을 변수를 설정한다. 2. for문을 돌려서 absolutes[i] 가 signs[i] === true 일 때 양수를, false일 때 - 를 붙여 음수로 만들어준다. 3. 결과값에 absolut..
[풀이] function solution(arr) { const minNumber = Math.min(...arr); const resultArr = arr.filter((element) => element !== minNumber); return resultArr.length === 0 ? [-1] : resultArr; } 1. 배열 arr 을 전개구문을 통해 최소값을 찾아준다. 2. filter() 함수를 통해 최소값을 제거한 요소들을 새로운 배열로 만들어준다. 3. 만약 resultArr 배열의 길이가 0이라면 -1 을 리턴하고 아니면 resultArr 배열을 리턴해준다. 처음에는 단순히 arr 길이가 0일 때로 조건을 설정했었다. 안되는 이유는 제한 조건에 arr의 길이는 1이고 당연히 resu..
[풀이] function solution(phone_number) { const numArr = phone_number.split(""); const backNumber = numArr.splice(phone_number.length-4, 4).join(""); const frontNumber = numArr.join("").replace(/[0-9]/g, "*"); return frontNumber + backNumber; } 1. 먼저 번호를 배열로 바꿔준다. 2. 뒤 4자리를 splice()를 통해 값을 받아 놓는다. - 이때 splice(phone_number.length-4, 4) 인 이유 만약 phone_number가 "02777888" 이라면 numArr = ['0', '2', '7', '7..
자바스크립트에서 숫자, 문자열, 객체 배열을 정렬하는 방법! 1. 숫자 배열 정렬 const arr = [23, 15, 2, 9, 1, 3]; arr.sort(); // [1, 15, 2, 23, 3, 9]; 숫자 배열에 단순히 sort() 를 적용하면 숫자를 문자열로 반환해 정렬함 이때 문자열 "11"은 "2"보다 작기 때문에 숫자 크기대로 정렬되지 않음!! - 오름차순 const arr = [23, 15, 2, 9, 1, 3]; arr.sort((a, b) => a - b); // [1, 2, 3, 9, 15, 23] sort()에 두 개의 숫자를 비교하는 함수를 구현해 인자로 전달해야 함. a - b 의 값을 리턴하도록 하면 오름차순이 됨 a 가 크면 양수, b가 크면 음수, 같으면0 이 리턴되기 ..
[풀이] function solution(d, budget) { let result = 0; let sum = 0; d = d.sort((a, b) => a - b); for (let i = 0; i budget) return result; result++; } return result; } if - else를 사용해 break 로 종료하는 것 보다 sum에 d의 값을 누적하다가 sum > budget 일 때 바로 return result 하는 것이 좋은 방법이 될 것 같다. sort 메서드는 기존 배열을 바꿔주는..
[처음 푼 풀이] function solution(arr, divisor) { let newArr = []; for (let i = 0; i < arr.length; i++) { if (arr[i] % divisor === 0) { newArr.push(arr[i]); newArr.sort(); } else { newArr.push(-1); } } return newArr; } 1. 새로운 배열을 받아줄 newArr 변수를 설정함. 2. for문을 돌려서 arr[i]가 divisor로 나눠진다면, newArr에 push를 해 값을 배열에 넣어줌. 3. 그리고 그 값들을 sort를 이용해 오름차순으로 정렬해줌. 4. 만약 divisor로 나누어 떨어지지 않으면 newArr에 -1을 push함. 그런데, 여..
자바스크립트 배열안의 원소들 중 최대값, 최소값 구하는 방법 정리 1. Math.max(), Math.min() 파라미터로 입력받은 숫자들 중 최대값과 최소값 구해 리턴하는 함수 const maxNum = Math.max(1, 2, 3, 4, 5); //5 const minNum = Math.min(1, 2, 3, 4, 5); //1 배열에 담긴 여러 숫자 중 최대값과 최소값을 구하기 위해서는 배열의 원소들을 하나씩 꺼내 Math.max(), Math.min() 함수의 파라미터로 전달하면 됨 이렇게 하기 위해서 Function.prototype.apply() 메소드를 사용하거나 Spread Operator(전개 연산자)를 사용함 2. Function.prototype.apply() func.apply(t..