본문 바로가기
기초다지기/JS 코딩테스트

javaScript 문자열 밀기

by 김빵그 2023. 11. 10.

문제 

문자열 A와 B가 매개변수로 주어질 때 A 를 밀어 B가 될 수 있다면 밀어야 하는 최소 횟수를 리턴 B가 될 수 없으면 -1

나의 풀이 

function solution(A, B) {
    var bText = B.repeat(2);
    console.log(B.repeat(2));
    return bText.includes(A) ? bText.indexOf(A) : -1;

}
  • B문자열을 두번 반복하여 bText에 저장 
  • includes bText에 A가 존재하면 A의 첫번째 인덱스 반환 아니면 -1 리턴 

다른 풀이 

let solution=(a,b)=>(b+b).indexOf(a)

//
console.log(solution("ab", "abcabc")); // 0
console.log(solution("bc", "abcabc")); // 1
console.log(solution("ab", "abcdef"));  // -1
function solution(A, B) {
    if (A===B) return 0;
    for (let i = 0; i < A.length; i++) {
        A = A.slice(-1) + A.slice(0,-1);
        if (A === B) return i+1;
    }
    return -1;
}
  • A === B이면 0 
  • A를 slice(-1) A의 마지막 문자, slice(0, -1) 문자열의 A의 첫번째 문자열부터 마지막 문자 하나 앞까지
  •