상세 컨텐츠

본문 제목

알고리즘 문제풀이 - ABCheck

Programming Language/JavaScript

by Yongari 2022. 12. 22. 21:57

본문

 

문제 설명 : 입력 받은 문자열 중 다음과 같은 문자열이 있으면 true로 반환하기

a로 시작해서 b로 끝나는 길이 5의 문자열

b로 시작해서 a로 끝나는 길이 5의 문자열

 

입력

인자 1 : str

  • string 타입의 알파벳 문자열

출력

  • boolean 타입을 리턴해야 합니다.

주의 사항

  • 대소문자를 구분하지 않습니다.
  • 공백도 한 글자로 취급합니다.
  • 'a'와 'b'는 중복해서 등장할 수 있습니다.

입출력 예시

let output = ABCheck("lane Borrowed");
console.log(output); // --> true

let output2 = ABCheck("lBne aorrowed");
console.log(output2); // --> true

let output3 = ABCheck("aMAJ7sBrO4CyysuoHFrgGTX");
console.log(output3);

let output4 = ABCheck("HK9J6YjrAcMbq8qKrbS3EaPRT");
console.log(output4); // --> true

 

 

풀이코드 설명

1번 코드는 정규표현식을 이용해서 문제에서 원하는 문자열을 정규표현식으로 설정한 뒤 입력받은 문자열에서 존재하는지 체크하는 방법이다.

 

2번 코드는 반복문을 이용해서 찾고자하는 문자열을 찾는 코드다.

코드는 다음과 같다.

 

//1번 풀이 - 정규표현식
function ABCheck(str) {
  str = str.toLowerCase();
  findStr1 = /[a][a-z0-9\s]{3}[b]/gi;
  findStr2 = /[b][a-z0-9\s]{3}[a]/gi;
  result1 = findStr1.test(str);
  result2 = findStr2.test(str);

  if (result1 === true || result2 === true) {
    return true;
  } else {
    return false;
  }
  if (str.length === 0) {
    return false;
  }
}
//2번 풀이 - 반복문 이용

function ABCheck(str) {
  if (str === undefined) {
    return false;
  }

  str = str.toLowerCase();

  for (let i = 0; i < str.length; i++) {
    if (
      (str[i] === "a" && str[i + 4] === "b") ||
      (str[i] === "b" && str[i + 4] === "a")
    ) {
      return true;
    }
  }
  return false;
}

 

관련글 더보기