9번.
문자열을 입력받아 문자열 내에 아래 중 하나가 존재하는지 여부를 리턴해야 합니다.
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가 있는지 확인하는 방식으로 한 게 독특했음..