[JavaScript] 프로그래머스 문자열 밀기

Gaeun·2022년 11월 13일
0
post-custom-banner

문자열 밀기

문제 설명
문자열 "hello"에서 각 문자를 오른쪽으로 한 칸씩 밀고 마지막 문자는 맨 앞으로 이동시키면 "ohell"이 됩니다. 이것을 문자열을 민다고 정의한다면 문자열 AB가 매개변수로 주어질 때, A를 밀어서 B가 될 수 있다면 몇 번 밀어야 하는지 횟수를 return하고 밀어서 B가 될 수 없으면 -1을 return 하도록 solution 함수를 완성해보세요.

나의 풀이

처음엔 어렵게 생각했다가 쉽게 생각해보자고 마음을 고쳐먹었다. 도저히 풀리지가 않았기 때문이다. 그러다 B를 두 번 써서 그 안에 온전하게 A가 들어있으면 되지 않을까? 라고 생각했다. 입출력 예 #1로 설명하자면, B인 "ohell"을 두 번 쓰면 "ohellohell"이 되고 이 문자열에서 1번 인덱스부터 온전하게 A인 "hello"가 있다. 그렇다면 indexOf 메서드를 사용하면 될 것이고, 이는 이 문제와도 잘 맞는 메서드였다. 몇 번 밀어도 될 수 없으면, B를 두 번 적은 것 안에 온전하게 A가 없으면 -1을 반환하기 때문이다.

따라서 나는 아래와 같이 코드를 작성했다.

function solution(A, B) {
    return (B+B).indexOf(A)
}

보면서도 놀라운 나의 잔머리 굴리기...😎 처음엔 for문을 어떻게 사용할지, 문자열을 배열로 바꾸고 마지막 인덱스를 가장 앞으로 끌고 오고... 굉장히 복잡하게 생각하고 있었다. 단순하게 생각하려 노력할 것! 오늘의 교훈!

다른 사람의 풀이

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

다른 사람의 풀이도 나와 비슷했다! 두 번째 매개 변수를 두 번 반복해서 써서 indexOf로 찾기. 좋아요를 많이 받았던데 이 좋아요가 내 것이 될 수 있었다는 생각에 조금은 아쉬웠다. 🤪

다음 문제들도 이 문제처럼 단순하게 생각하기 위해 노력해야겠다!

profile
🌱 새싹 개발자의 고군분투 코딩 일기
post-custom-banner

0개의 댓글