문자열 "hello"에서 각 문자를 오른쪽으로 한 칸씩 밀고 마지막 문자는 맨 앞으로 이동시키면 "ohell"이 됩니다. 이것을 문자열을 민다고 정의한다면 문자열 A와 B가 매개변수로 주어질 때, A를 밀어서 B가 될 수 있다면 몇 번 밀어야 하는지 횟수를 return하고 밀어서 B가 될 수 없으면 -1을 return 하도록 solution 함수를 완성해보세요.
제한사항
0 < A의 길이 = B의 길이 < 100
A, B는 알파벳 소문자로 이루어져 있습니다.
입출력 예
A | B | result |
---|---|---|
"hello" | "ohell" | 1 |
"apple" | "elppa" | -1 |
function solution(A, B) {
if(A === B) return 0
let a = A.split("")
for(let i = 0; i<a.length; i++){
a.unshift(a.pop())
if(a.join("") === B) return i+1
}
return -1
}
A와 B가 동일한 경우 밀기를 할 필요가 없다 (테스트 3번)
if(A === B) return 0
문자열을 split()으로 쪼개서 만든 배열을 a라고 할 때
가장 오른쪽에 있는 요소를 가장 왼쪽에 삽입하는 방법:
let a = A.split("")
a.unshift(a.pop())
이것을 a의 길이만큼 순회해서 a를 join()한 것과 B가 동일하면 순회 회차를 반환하고, 반환 없이 순회가 종료되면 B가 될 수 없으므로 -1을 반환한다
for(let i = 0; i<a.length; i++){
//
if(a.join("") === B) return i+1
}
return -1