-
javascript로 알고리즘 풀 때 유용한 메소드를 정리해보자알고리즘 2020. 5. 10. 02:09
내일 우아한테크캠프 코딩 테스트가 있다. (카카오에 이어 이틀 연속 코테,,)
우아한테크캠프는 웹프론트앤드 개발자를 위한 캠프여서 코딩 테스트에서 언어는 javascript만 사용할 수 있다! 😕 오마이갓.
나에게 javascript는,, 가깝고도 먼 존재인 것 같다.
사용을 꽤 해본 것 같긴한데, 그냥 다른 언어 쓰듯이 사용한 느낌..?
알고리즘을 풀 때 메소드를 잘 쓰는것도 매우 중요하므로, 유용한 메소드를 한번 정리해보겠다. 💁♀️
forEach
for문과 같이 반복문을 수행하지만 index, 조건식, increase가 필요없고, callback 함수로 기능을 수행한다.
const arr = [0, 1, 2, 3, 4, 5]; arr.forEach(element => console.log(element)); // 실행 결과 // 0 1 2 3 4 5
element말고도 index, array도 parameter로 들어올 수 있다.
const arr = [0, 1, 2, 3, 4, 5]; arr.forEach(function(element, index, array){ console.log(`${array}의 ${index}번째 요소 : ${element}`); }); /* 실행 결과 0,1,2,3,4,5의 0번째 요소 : 0 0,1,2,3,4,5의 1번째 요소 : 1 0,1,2,3,4,5의 2번째 요소 : 2 0,1,2,3,4,5의 3번째 요소 : 3 0,1,2,3,4,5의 4번째 요소 : 4 0,1,2,3,4,5의 5번째 요소 : 5 */
🚫 주의점: for문은 continue나 break로 반복을 제어할 수 있지만 forEach 무조건 끝까지 반복한다.
map
callback 함수의 조건으로 배열 안의 요소들을 일괄적으로 변경 후 배열을 새로 생성한다.
const arr = [0, 1, 2]; var arr2 = arr.map(function(element){ return element * 2; }); console.log(arr2); // 실행 결과 // [0, 2, 4]
배열의 요소를 업데이트해서 배열을 생성하는 일 뿐만 아니라, 함수 안에 적어준대로 배열을 새로 반환 할 수 있다.
const arr = [0, 1, 2]; var arr2 = arr.map(function(element){ if(element % 2 == 0) return '짝수'; return '홀수'; }); console.log(arr2); // 실행 결과 // [ '짝수', '홀수', '짝수' ]
❗️ 특징: map은 배열을 1대1로 매핑하지만 기존 객체를 수정하지 않는다.
filter
callback 함수의 조건에 해당하는 모든 요소가 있는 배열을 새로 생성한다.
const arr = [0, 1, 2, 3, 4, 5]; var arr2 = arr.filter(function(element){ return element % 2 == 0; }); console.log(arr2); // 실행결과 // [0, 2, 4]
object 배열에도 바로 적용 가능!
var data = [ {name: "시연", age: 23}, {name: "예원", age: 24}, {name: "예진", age: 24}, {name: "찬영", age: 26} ]; var twentyFour = data.filter( x => { return x.age ==24; }); console.log(twentyFour); // 실행 결과 // [ { name: '예원', age: 24 }, { name: '예진', age: 24 } ]
find
filter와 비슷하지만 한개의 해당하는 요소만 리턴한다.
const arr = [0, 1, 2, 3, 4, 5]; var arr2 = arr.find(function(element){ return element % 2 == 1; }); console.log(arr2); // 실행 결과 // 1
🚫 주의점: return이 true인 요소를 찾지 못하면 undefined가 반환된다.
split
특정 문자를 기준으로 문자열을 구분해서 배열로 만들어서 반환한다.
const str = "This is me"; var str2 = str.split(" "); console.log(str2); // 실행 결과 // [ 'This', 'is', 'me' ]
substr
문자열에서 특정부분을 잘라내서 반환한다.
생김새: substr(시작 position, 길이);
const str = "abcdefg"; var str2 = str.substr(1, 3); console.log(str2); // 실행 결과 // bcd
❗️ 특징: 두번째 매개변수가 없으면 문자열의 끝까지 자른다.
간단히 알고리즘을 풀 때 유용하게 이용할 수 있는 메소드를 정리해보았다.
내일 코딩 테스트 뿌시자! 👊
(오늘은 내가 뿌셔졌다.)'알고리즘' 카테고리의 다른 글
Kruskal 알고리즘 (0) 2020.05.03 BFS 알고리즘 (2) 2020.04.17