[TIL] 240321 (문자열 뒤집기, 찾기)

·2024년 3월 21일

TIL

목록 보기
4/268

문자열 뒤집기

세가지 메서드를 사용해 문자열을 반전한다.

  • split() 메서드로 문자열 객체를 배열로 분할한다.
  • reverse() 메서드로 배열을 반전한다.
  • join() 메서드로 배열의 모든 요소를 문자열로 결합한다.
function solution(my_string) {
    return my_string.split("").reverse().join("");
}

다른 사람들의 풀이를 보니 split() 메서드가 아닌 스프레드 문법으로 문제를 해결한 것을 볼 수 있었다.

  • 스프레드 문법 : ...연산자를 사용하여 배열이나 문자열을 개별 요소로 분해하여 결합할 수 있다.
function solution(my_string) {
    return [...my_string].reverse().join("");
}

문자열 찾기

문자열 안에 특정 문자열이 있는지 찾는 문제가 있었다.

function solution(str1, str2) {
    for (let i=0; i < str1.length;i++) {
        let sum = 0;
        for (let j=0; j < str2.length;j++) {
            if (str1[i+j] == str2[j]) {
                sum++
                if (sum == str2.length) {
                    return 1;
                }
            } else {
                break;
            }
        }
    }
    return 2;
}

이렇게 for문을 두 번씩 써가며 어렵게 풀었으나...

  • includes() : 하나의 문자열이 다른 문자열에 포함되어 있는지를 판별하고, 결과를 true 또는 false로 반환한다. 검색 시 대소문자를 구분한다.

includes() 메서드에 대한 개념을 공부한 기억이 있으나, 공부했던 건 배열 쪽이었고, 그마저도 딱 떠오르지 않아 위의 코드처럼 긴 코드를 작성하게 되었다. 이 메서드를 사용해서 문제를 풀면 다음과 같다.

function solution(str1, str2) {
    return str1.includes(str2) ? 1 : 2;
}

아직 문법에 대한 지식량이 많이 부족하다는 걸 깨닫게 해준 문제였다. 문제 풀이와 동시에 문법 공부를 꾸준히 동시에 해야겠다.

profile
웹 프론트엔드 개발자

0개의 댓글