ABOUT ME

Today
Yesterday
Total
  • [코딩테스트] 배열, 문자, 숫자 메서드 총정리
    프론트엔드 개발자가 될거야./코딩테스트 2022. 10. 11. 11:13

    코딩테스트는 개발자에게 첫번째 관문이다.

    아직 초반이라 어렵지만 그만큼 성장하고 배우고 있다는 증거겠지?

    많이 틀리고 고치고 고민하는 이 과정이 개발자로서의 나를 더 단단하게 하고있다고 믿고 꾸준히 해야겠다.

     

    현재 프로그래머스 1, 2단계를 풀고있고 

    그러면서 문제에 나오는 메서드들을 총정리 해보았다.

    메서드들의 사용법이 바로 떠올라야 코딩테스트에 도전장을 내밀 수 있다!!!!!!!!!

     

    코딩테스트의 고수가 되는 그날까지.. 파이팅.....⭐️


    📌 배열 메서드

    - 요소추가 ⇒ push(인자): 뒤, unshift(인자): 앞

    - 요소 뽑기 ⇒ pop(): 뒤, shift(): 앞

    [ 1, 2, 3, 4 ].pop() ⇒ 4


    - 잘라서 원하는 부분만 남김 ⇒ slice(순서,순서) (원본 배열 변형X , 새로운 변수 선언해주기)

    "01033334444".slice(7,11) ⇒ “4444”
    [1,2,3,4,5].slice(1,4) ⇒ [2,3,4] "01033334444".slice(-4) ⇒ “4444”

    - 자르고 그 자리에 원하는 요소 추가 ⇒ splice(순서,순서,값,값…)(원본 배열 변형O) (인자 순서 주의!)

    [1,2,3,4,5].splice(2,1,10) ⇒ [1,2,10,4,5] - 2번째 자리에서 하나 제거 후 10추가


    - 배열 반대로 뒤집기 ⇒ 배열.reverse()

    JavaScript를 사용하면서 문자열을 반전시키고 싶을 때는 reverse()를 사용하면 되는데, 이 메소드는 배열에서 동작하므로 split("")을 사용하여 분리를 먼저 해주면 된다.

    - 합치기 ⇒ concat(요소)

    [1, 2].concat(3, 4, 5, ‘a’, null) ⇒ [1, 2, 3, 4, 5, ‘a’, null];

    [1, 2].concat([3, 4], [5, 6, 7]) ⇒ [1, 2, 3, 4, 5, 6, 7];


    - 배열 → 문자 만들기 ⇒ join(””)

    ['Shane', 'Alan', 'Osbourne'].join(’ ’) ⇒ Shane Alan Osbourne

    ['Shane', 'Alan', 'Osbourne'].join(’-’) ⇒ Shane-Alan-Osbourne

    ['Shane', 'Alan', 'Osbourne'].join(’’) ⇒ ShaneAlanOsbourne

    - 문자 → 배열 만들기 ⇒ split(””)

    "Shane Alan Osbourne".split(" ") ⇒ [ 'Shane', 'Alan', 'Osbourne' ]

    "Shane-Alan-Osbourne".split("-") ⇒ [ 'Shane', 'Alan', 'Osbourne' ]

    split("")와 join('')은 거의 세트라 생각하자.

    - 만족하는 배열의 첫번째 요소 반환 ⇒ find(요소)

    - 만족하는 배열의 첫번째 요소의 인덱스 반환 ⇒ findIndex(요소) / indexOf


    - 정렬하기 ⇒ sort() / 숫자 배열뿐만 아니라 문자열 배열도 정렬해 준다.

    근데 10보다 큰 수가 있다면…..

    // 오름차순 ⇒ items.sort((a, b) => a - b); // [2, 10, 20, 30]

    // 내림차순 ⇒ items.sort((a, b) => b - a); // [30, 20, 10, 2]

    // 이름의 길이순으로 정렬하기 ⇒ names.sort((a, b) => b.length - a.length); // ['Einstein', 'Kittie', 'Sally', 'John']

     

    문자열 배열도 알아서 오름차순 정렬해준다.

    자동으로 대문자가 먼저 A~Z / 그 다음 소문자 a~z

    문자열을 내림차순 하고싶으면 reverse하면 된다.

    = "DajBziAlC".split('') -> ['D', 'a', 'j', 'B', 'z', 'i', 'A', 'l', 'C'].split('').sort() -> ['A', 'B', 'C', 'D', 'a', 'i', 'j', 'l', 'z'].split('').sort().reverse()

    -> ['z', 'l', 'j', 'i', 'a', 'D', 'C', 'B', 'A'].split('').sort().reverse().join('') -> zljiaDCBA

     

     

     

    [ '1', '1', '8', '3', '7', '2' ].sort() → [ '1', '1', '2', '3', '7', '8' ]


    - 최소값 구하기(문자열도 가능) ⇒ Math.min(…arr)

    const arr =  [ '1', '2', '3', '4' ];

    Math.min(…arr) = '1'

    - 최대값 구하기(문자열도 가능) ⇒ Math.max(…arr)

    const arr =  [ '1', '2', '3', '4' ];

    Math.max(…arr) = '4'


    - 배열의 총합 구하기 ⇒ reduce((total, el, i) ⇒ total + el ,0)

    let sum = [1, 2, 3, 4, 5]
    var a = sum.reduce((tot, el, i) => tot + el, 0)
    // a = 15
    // sum = [1, 2, 3, 4, 5]
    // 1번째 tot = 0, el = 1, i = 0, return 1
    // 2번째 tot = 1, el = 2, i = 1, return 3
    // 3번째 tot = 3, el = 3, i = 2, return 6
    // 4번째 tot = 6, el = 4, i = 3, return 5
    // 5번째 tot = 10, el = 5, i = 4, return 15

    📌 숫자 메서드

    제곱근이 정수면 약수의 개수는 홀수이다!!!!!!
    isNaN() = ‘숫자가 아니니?’ → 숫자면 false / 숫자가 아니면 true

    - Math.sqrt(x) : x의 제곱근을 반환한다.

    예를들어 Matn.sqrt(144) = 12

    - Math.pow(base,exponent) : base에 exponent를 제곱한 값을 반환한다.

    예를들어 Math.pow(12,2) = 144(12*12)

    - Number.isInteger(x) : x 정수면 true, 아니면 false

    예를들어 Number.isInteger(Math.sqrt(16)) = true 예를들어 Number.isInteger(Math.sqrt(15)) = false


    📌 문자 메서드

    - JavaScript를 사용하면서 문자열을 반전시키고 싶을 때는 reverse()를 사용하면 되는데,
    이 메소드는 배열에서 동작하므로 split("")을 사용하여 분리를 먼저 해주면 된다.
    - parseInt(문자)하면 NaN출력!!!

    - charAt(인수) - 인수번째의 문자를 읽어 냅니다.

    예) "javascript".charAt(2)에는 'v'가 읽어 집니다. 0부터 시작하기 때문에 3번째인 'v'가 읽어 집니다.

     

    - indexOf(인수) - 인수가 들어있는 위치를 알려 줍니다.

    예) "javascript".indexOf("s")에는 4가 읽어 집니다. 0부터 시작하기 때문입니다.(lastIndexOf는 뒤에서부터 셈)

     

    - substring(인수, 인수) - charAt은 문자하나를 읽어내지만 substring은 문자열을 읽어 냅니다.

    예) "javascript".substring(1, 3) = "ava"를 추출 / 0부터 시작하기 때문입니다.

    예) "javascript".substring(1) = "avascript"를 추출 / 0부터 시작하기 때문입니다.


    - 대문자로 변경 => toUpperCase()

    - 소문자로 변경 => toLowerCase()


    - startsWith

    - endsWith

    - includes

    const email = 'yealee.kim87@gmail.com';
    
    console.log(email.startsWith('ye')); //true
    console.log(email.endsWith('com')); //true
    console.log(email.includes('@gmail')); //true
    
    

    그리고 특정 문자열을 반복하고 싶으면 repeat 함수를 쓰면 된다.

    '#'.repeat(3); //'###'

    댓글

Designed by Tistory.