Problem
문자열 "hello"에서 각 문자를 오른쪽으로 한 칸씩 밀고 마지막 문자는 맨 앞으로 이동시키면 "ohell"이 됩니다. 이것을 문자열을 민다고 정의한다면 문자열 A와 B가 매개변수로 주어질 때, A를 밀어서 B가 될 수 있다면 밀어야 하는 최소 횟수를 return하고 밀어서 B가 될 수 없으면 -1을 return 하도록 solution 함수를 완성해보세요.
Solution
function solution(A, B) {
let a = A.split('');
for (let i = 0; i < A.length; i++){
if(A === B) return 0;
a.unshift(a.pop());
if(a.join('') === B) return i+1;
} return -1;
}
1. 문자열 매개변수 A를 배열로 변환한다
2. A와 B가 같을 경우 return 0
3. a의 마지막요소를 a의 맨 앞 요소에 둔다
4. 문자열 a가 B와 같다면 return i+1
5. for문을 다 돌렸는데도 A !== B라면 return -1
다른 풀이를 보니까 더 간단했다

let solution=(a,b)=>(b+b).indexOf(a)
a가 포함되지 않는다면 -1
그리고 각 횟수도 잘 return 된다..
'프로그래머스 (JS) > Lv. 0' 카테고리의 다른 글
[Programmers] 120812번 - 최빈값 구하기 (0) | 2023.03.10 |
---|---|
[Programmers] 120871번 - 저주의 숫자 3 (0) | 2023.03.09 |
[Programmers] 120880번 - 특이한 정렬 (0) | 2023.03.09 |
[Programmers] 120878번 - 유한소수 판별하기 (0) | 2023.03.09 |
[Programmers] 120882번 - 등수 매기기 (0) | 2023.03.08 |