문자열을 입력받아 문자열 내에 아래 중 하나가 존재하는지 여부를 리턴해야 합니다.
'a'로 시작해서 'b'로 끝나는 길이 5의 문자열
'b'로 시작해서 'a'로 끝나는 길이 5의 문자열
function check(str) {
// 먼저 대소문자의 구분을 받지 않도록 인자로 받는 문자열을 소문자로 변경시켜주엇다.
str = str.toLowerCase();
for(let i = 0; i < str.length; i++) {
// 만약 반복문을 돌면서 'a'를 만난다면 안의 반복문을 실행한다.
if(str[i] === 'a') {
// 시작하는 문자가 'a' 문자열일때 5번째 길이의 문자가 'b'라면 리턴 true 를 실행하게 해주었다.
if(str[i + 4] === 'b') {
return true
}
// 반복문을 돌면서 문자가 'b'라면
} else if(str[i] === 'b') {
// 시작하는 문자가'b'문자열일때 5번째 길이의 문자가 'a'라면 리턴 true 를 실행하게 해주었다.
if(str[i + 4] === 'a') {
return true
}
}
}
// 반복문을 다돌아도 안의 조건문이 실행되지 않는다면 false를 리턴한다.
return false
}
function check(str) {
// 인자로 받은게 undefined라면 false를 리턴한다.
if (str === undefined) {
return false;
}
// 먼저 대소문자의 구분을 받지 않도록 인자로 받는 문자열을 소문자로 변경시켜주었다.
str = str.toLowerCase();
// 최소 길이가 5는 되야하기 때문에 i를 4부터 넣어 반복문을 실행한다.
for (let i = 4; i < str.length; i++) {
// 반복문을 돌리면서 'a'를 만나고 그인덱스의 -4 가 'b' 이거나 'b'를 만나고 그인덱스의 -4 가 'a' 라면 true를 리턴한다.
if (
(str[i] === 'a' && str[i - 4] === 'b') ||
(str[i] === 'b' && str[i - 4] === 'a')
) {
return true;
}
}
// 아무것도 해당되지 않으면 false를 실행한다.
return false;
}
내가쓴 코드는 'a'나 'b'를 만나면 그인덱스의 +4번째에 'a'나'b'인지 확인하였고 레퍼런스는 끝의 문자열을 기준으로 확인하였다. 그래서 처음 레퍼런스를 볼떄 왜 반복문의 i 가 4부터 시작하는지 이해하기가 살짝 어려웠다.
사람마다 쓰는 코드가 다 다를 수 있으니 조금 더 간결할게 쓸 수 있도록 계속해서 시도해야겠다.