728x90
# 문제
문자열 "hello"에서 각 문자를 오른쪽으로 한 칸씩 밀고 마지막 문자는 맨 앞으로 이동시키면 "ohell"이 됩니다. 이것을 문자열을 민다고 정의한다면 문자열 A와 B가 매개변수로 주어질 때, A를 밀어서 B가 될 수 있다면 밀어야 하는 최소 횟수를 return하고 밀어서 B가 될 수 없으면 -1을 return 하도록 solution 함수를 완성해보세요.
# 답안
// 1. 입력: 문자열 A,B
// 2. 출력: A를 회전하여 B를 만들기 위한 최소 회전 횟수
// A를 배열로 복사한다.
// 반복문 돌릴건데
// A===B면, 0번 밀기
// else면, 뒤에꺼 빼서(pop) 앞에 붙이기(unshift)
// join("")해서 붙인게 === B 일때까지 i+1
// 반복문 돌려도 전부 다 일치 안하면 -1 반환
function solution(A, B) {
let arr = [...A]
for(let i = 0; i< arr.length; i++){
if(A === B)
return i;
else{
arr.unshift(arr.pop())
if(arr.join('') === B)
return i+1;
}
}
return -1;
}
# 인사이트
// unshift() 메서드는 새로운 길이를 반환하고 배열 자체를 변경하므로 이 메서드를 호출한 결과를 바로 join() 메서드에 적용할 수 없다.
// 따라서 배열의 변경을 한 줄로 해결할 수 없, 배열을 수정한 후에 join() 메서드를 호출해야한다.
728x90
'Coding Test > Programmers' 카테고리의 다른 글
[프로그래머스/JavaScript] 코딩 테스트 풀이 (문제 85 - 최빈값 구하기) (0) | 2024.04.24 |
---|---|
[프로그래머스/JavaScript] 코딩 테스트 풀이 (문제 84 - 특이한 정렬) (0) | 2024.04.24 |
[프로그래머스/JavaScript] 코딩 테스트 풀이 (문제 82 - 저주의 숫자 3) (0) | 2024.04.23 |
[프로그래머스/JavaScript] 코딩 테스트 풀이 (문제 81 - 치킨 쿠폰) (0) | 2024.04.23 |
[프로그래머스/JavaScript] 코딩 테스트 풀이 (문제 80 - 로그인 성공?) (0) | 2024.04.23 |