[22.09.30] Daily Coding 9

동화·2022년 10월 5일
0

Daily-Coding

목록 보기
8/15

9번.
문자열을 입력받아 문자열 내에 아래 중 하나가 존재하는지 여부를 리턴해야 합니다.

  • 'a'로 시작해서 'b'로 끝나는 길이 5의 문자열
  • 'b'로 시작해서 'a'로 끝나는 길이 5의 문자열
function ABCheck(str) {
  let str1 = str.toLowerCase()
  for (let i = 0; i<str.length; i++) {
    if (str1[i] === 'a' && str1[i+4] === 'b') return true
    else if (str1[i] === 'b' && str1[i+4] === 'a') return true
  } return false
}

먼저 문자열을 모두 소문자(혹은 대문자)로 바꾸었다
toLowercase 라고 난 오타를 한참동안 발견하지 못하고 계속 삽질..
심지어 콘솔에다가 테스트 할 때도 () 이걸 넣지 않아서 자꾸 오류가 났따
그래서 숫자랑 공백이 섞이면 변환 안 해주나..? 그럴리 없는데.. 하면서 삽질.. ㅎ_ㅎ
어렵지 않은 문제였는데 그냥 삽질왕이었다






레퍼런스 📌

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

  str = str.toLowerCase();

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

  return false;
}

if 안의 조건들을 ( ) || ( )로 묶어서 훨씬 깔끔하다
그리고 i 를 4부터 시작해서 4칸 전에 a,b가 있는지 확인하는 방식으로 한 게 독특했음..

0개의 댓글