😎풀이

  1. 회전 가능 횟수를 s의 길이로 설정한다.
  2. 각 자리를 goal과 비교한다.
    2-1. 자리가 갖을 경우 다음 문자를 검사한다.
    2-2. 자리가 다를 경우 s의 맨 앞 문자를 맨 뒤로 보낸다.
  3. 이동 가능 횟수가 종료되었거나, 모든 문자를 비교했을 때 goal과 최종적으로 비교하여 회전을 통해 만들 수 있는 문자였는지 판단한다.
function rotateString(s: string, goal: string): boolean {
    const sLen = s.length
    const splittedS = s.split('')
    let rotateCount = sLen
    let i = 0
    while(rotateCount) {
        if(i >= sLen) break
        if(splittedS[i] === goal[i]) {
            i++
            continue
        }
        splittedS.push(splittedS.shift())
        rotateCount--
    }
    return splittedS.join('') === goal
};
profile
내 지식을 공유할 수 있는 대담함

0개의 댓글