[자바스크립트/알고리즘] 두 배열 중복 값 제거 (concat, filter)
알고리즘/FreeCodeCamp 2021. 1. 17. 10:21

입력: [1,2,3,5], [1,2,3,4,5] 출력: [4] OR 입력: [1, "cafe", 3, "apple"], [1, "cafe", 3, 4] 출력: ["apple", 4] function findUniqElem(arr1, arr2) { return arr1.concat(arr2) .filter(item => !arr1.includes(item) || !arr2.includes(item)); } findUniqElem([1, 2, 3, 5], [1, 2, 3, 4, 5]); arr1과 arr2를 합친다음 ( 예시에서는 [ 1, 2, 3, 5, 1, 2, 3, 4, 5 ] ) filter() 메소드를 이용하여 arr1이나 arr2에 포함되어 있지않은 수를 반환한다.

[자바스크립트/알고리즘] 알파벳순 정렬(sort 함수)
알고리즘/FreeCodeCamp 2021. 1. 16. 23:18

입력: ["x", "h", "a", "m", "n", "m"] 출력: ["a", "h", "m", "m", "n", "x"] function alphabeticalOrder(arr) { // Only change code below this line return arr.sort((a, b)=>{ return a === b? 0: a

[자바스크립트/알고리즘] 양의 정수만 출력 (filter, map)
알고리즘/FreeCodeCamp 2021. 1. 16. 22:16

입력: positiveIntList([-3, 4.8, 5, 3, -3.2]); 출력: 5, 3 const positiveIntList = arr => { return arr.filter(num => num > 0 && num % parseInt(num) === 0) }; 결과값에 2승한 값을 출력하고 싶다면? const positiveIntList = arr => { return arr.filter(num => num > 0 && num % parseInt(num) === 0) .map(num => Math.pow(num,2)) }; map()을 추가해주면 된다. 문제 출처: www.freecodecamp.org

[자바스크립트/알고리즘] 두 정수 사이의 합 (Math.min, Math.max, ...arr)
알고리즘/FreeCodeCamp 2021. 1. 15. 13:47

입력: sumAll([1, 4]); 출력: 10 [4, 1]의 결과값도 10으로 동일하다. function sumAll(arr) { let sum = 0; for(let i = Math.min(...arr); i

[자바스크립트/알고리즘] 오름차순 정렬 후 추가한 값의 인덱스 찾기(sort 함수)
알고리즘/FreeCodeCamp 2021. 1. 12. 23:51

(입력: 배열 하나와 추가할 숫자 하나 (예시: [2, 20, 10], 19) 출력: 2 ([2, 10, 19, 20]에서 새로 추가된 19의 인덱스 번호 2) function getIndex(arr, num) { arr.push(num); arr.sort((a,b)=>a-b); return arr.indexOf(num); } console.log(getIndex([2, 20, 10], 19)); 1. num을 배열 arr에 push한다. 2. 오름차순 정렬한다. 3. num의 인덱스 번호를 리턴한다. 또 다른 방법) 솔루션을 참고하였다. 정말 간단하다! function getIndexToIns(arr, num) { return arr.filter(val => num > val).length; } 난 생..

[자바스크립트/알고리즘] Falsy 값 판별 (filter 함수)
알고리즘/FreeCodeCamp 2021. 1. 12. 23:15

* 자바스크립트 Falsy 값 : Boolean이 False가 뜨는 값들이다. (예: false, 0, "", null, undefined, NaN 등) 입력: [false, null, 0, NaN, undefined, ""] 출력: [] (모두 다 falsy values이기 때문) function WhoIsFalsy(arr) { return arr.filter(Boolean); } WhoIsFalsy([false, null, 0, NaN, undefined, ""]); * filter() 메소드 주어진 함수의 테스트를 통과하는 모든 요소를 모아 새로운 배열로 반환 정말 단어 '필터'의 뜻 그 자체. 문제 출처: FreeCodeCamp(www.freecodecamp.org/)

[자바스크립트/알고리즘] 단어 첫 글자만 대문자로 바꾸기(정규식)
알고리즘/FreeCodeCamp 2021. 1. 12. 19:33

입력: hElLo i'M nO onE 출력: Hello I'm No One function changeCase(str) { return str.toLowerCase().replace(/(^|\s)\S/g, L => L.toUpperCase()); } changeCase("hElLo i'M nO onE"); [특수문자] ^ : 문자열의 시작 \s : 스페이스, 탭, 줄 바꿈 등을 포함한 하나의 공백 문자 \S : 공백이 아닌 하나의 문자 [플래그] g : 전역 검색 [replace() 함수] str.replace("찾을 문자열", "변경할 문자열"); 문제 출처: FreeCodeCamp(www.freecodecamp.org/)

[자바스크립트/알고리즘] 함수를 만족하는 첫 번째 요소의 값 출력 (find 함수)
알고리즘/FreeCodeCamp 2021. 1. 12. 18:56

num % 2를 하였을 때 나머지가 0인 첫번째 배열값 찾기 문제이다. 입력: [1, 3, 5, 8, 9, 10], function(num) { return num % 2 === 0; } 출력: 8 function findElement(arr, func) { return arr.find(func); } findElement([1, 3, 5, 8, 9, 10], function(num) { return num % 2 === 0; }); for문 생성하여 루프 안에서 로직을 작성해도 되지만 간단하게 find 메소드를 쓰면 쉽게 해결된다. find() 메서드는 주어진 판별 함수를 만족하는 첫 번째 요소의 값을 반환합니다. 그런 요소가 없다면 undefined를 반환합니다. MDN에 적혀있는 find 메소드의 ..

[자바스크립트/알고리즘] 각 배열에서 가장 큰 수 찾기(map 함수)
알고리즘/FreeCodeCamp 2021. 1. 12. 00:24

function largestOfArray(arr) { return arr.map(Function.apply.bind(Math.max, null)); } 입력 예시) [ [4, 5, 1, 3], [13, 27, 18, 26], [32, 35, 37, 39], [1000, 1001, 857, 1] ] -> [ 5, 27, 39, 1001 ] 문제 출처: FreeCodeCamp(www.freecodecamp.org/)

[알고리즘/자바스크립트] 문자열 역순 출력
알고리즘/FreeCodeCamp 2021. 1. 11. 20:24

입력: hello 출력: olleh function reverseString(str) { return str.split("").reverse().join(""); } reverseString("hello"); split(), reverse(), join() 메소드를 이용하면 된다. 문제 출처: FreeCodeCamp(www.freecodecamp.org/)