문자열을 입력받아 문자열 내에 아래 중 하나가 존재하는지 여부를 리턴해야 합니다.
입출력 예시
let output = ABCheck('lane Borrowed');
console.log(output); // --> true
이번 문제는 그렇게 까다롭진 않아
반복문을 잘 생각하면 잘 풀림
시작 위치을 잘 설정하면됨
첫번째 풀이
function ABCheck(str) {
let newStr = str.toUpperCase();
for(let i = 0; i < newStr.length; i++){
if(newStr[i] === 'A' && newStr[i+4] === 'B'){
return true;
}
if(newStr[i] === 'B' && newStr[i+4] === 'A'){
return true;
}
}
return false;
}
사실 이렇게 해도 잘 풀려 근데
문자열을 벗어나게 되면 undefined으로 에러 날 수도 있어
두번째 문제풀이
시작점을 처음부터 5번째 인덱스부터 시작하는거지
이해함?
function ABCheck(str) {
if (str.length < 5){
return false
}
let newStr = str.toUpperCase();
for(let i = 4; i < newStr.length; i++){
if(newStr[i-4] === 'A' && newStr[i] === 'B'){
return true;
}
if(newStr[i-4] === 'B' && newStr[i] === 'A'){
return true;
}
}
return false;
}
그럼 다음문제로 이동
문자열을 입력받아 연속된 한자리 홀수 숫자 사이에 '-'를 추가한 문자열을 리턴해야 합니다.
예시
let output = insertDash('454793');
console.log(output); // --> 4547-9-3
function insertDash(str) {
// TODO: 여기에 코드를 작성합니다.
// 반복해서 인덱스별로 홀수를 찾는다.
// 연속해서 홀수 인 경우만 - 를 추가한다.
// 첫번째 풀이
if(str.length === 1){
return str;
}
let result = '';
for(let i = 0; i < str.length; i++){
if(str[i] % 2 !== 0 && str[i+1] % 2 !== 0){
result = result + str[i] + '-'
}else{
result = result + str[i]
}
}return result.slice(0,result.length-1);
}
두번째 풀이
사실 큰 차이는 없고....
넘버 타입으로 확실히 바꿔서 에러를 방지하고,
사실 나머지가 0이면 투루로 됨 ~~ 이거 팁
let result = '';
for(let i = 0; i < str.length; i++){
if(Number(str[i])%2 && Number(str[i+1])%2){
result = result + str[i] + '-'
}
else{
result = result + str[i]
}
} return result;
}