ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 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
Designed by Tistory.