Computer >> 컴퓨터 >  >> 프로그래밍 >> JavaScript

자바스크립트로 '부드러운(smooth)' 문장 판별하는 방법

자바스크립트에서 주어진 문장이 '부드러운(smooth)' 문장인지 판별하는 함수를 작성해야 하는 경우가 있습니다. 그렇다면 부드러운 문장이란 무엇일까요?

부드러운 문장의 정의

부드러운 문장이란 문장 내 각 단어의 첫 글자가 바로 앞 단어의 마지막 글자와 동일한 문장을 의미합니다.

예를 들어 this stringt tries sto obe esmooth라는 문장은 모든 단어가 이전 단어의 끝 글자로 시작하므로 부드러운 문장입니다. 반면 this string is not smooth는 이 조건을 만족하지 못하므로 부드러운 문장이 아닙니다.

구현 코드

이러한 조건을 검사하는 자바스크립트 함수는 다음과 같이 작성할 수 있습니다.

const str = 'this stringt tries sto obe esmooth';
const str2 = 'this string is not smooth';
const isSmooth = str => {
    const strArr = str.split(' ');
    for(let i = 0; i < strArr.length; i++){
       if(!strArr[i+1] || strArr[i][strArr[i].length -1] ===strArr[i+1][0]){
          continue;
       };
       return false;
    };
    return true;
};
console.log(isSmooth(str));
console.log(isSmooth(str2))

코드 동작 원리

위 코드의 작동 방식을 단계별로 살펴보면 다음과 같습니다.

  • split(' ') 메서드를 사용하여 문장을 공백 기준으로 분리하고 단어 배열을 생성합니다.
  • for 루프로 배열을 순회하며 현재 단어의 마지막 글자와 다음 단어의 첫 글자를 비교합니다.
  • 다음 단어가 존재하지 않는 경우(즉, 문장의 마지막 단어에 도달한 경우) 또는 두 글자가 일치하는 경우에는 continue로 다음 반복을 진행합니다.
  • 조건이 맞지 않으면 즉시 false를 반환하며, 모든 단어를 통과하면 최종적으로 true를 반환합니다.

실행 결과

위 코드를 실행하면 콘솔에 다음과 같은 결과가 출력됩니다.

true
false

첫 번째 문장은 모든 단어가 연결 조건을 만족하므로 true가 출력되고, 두 번째 문장은 조건을 만족하지 않으므로 false가 출력됩니다. 이처럼 간단한 문자열 처리 로직만으로도 문장의 매끄러움 여부를 손쉽게 판별할 수 있습니다.