😎풀이

  1. n에 도달할 수 있을 때까지 복사/붙여넣기 혹은 붙여넣기의 작업 수행
  2. 현재 문자 길이로 n을 나누어 떨어뜨릴 수 있는지 판별
    2-1. 가능하다면, 복사 및 붙여넣기가 최적의 행동
    2-2. 불가능하다면, 현재 복사된 내용을 붙여넣음
  3. 가장 빨리 n개의 A를 입력하는데 필요한 행동의 수 반환
function minSteps(n: number): number {
    let curKey = 'A'
    let copyLen = 0
    let step = 0
    while(n > curKey.length) {
        const keyLen = curKey.length
        const remain = n - keyLen
        if(remain % keyLen === 0) {
            copyLen = keyLen
            step++
            curKey = curKey.repeat(2)
            step++
        } else {
            curKey += 'A'.repeat(copyLen)
            step++
        }
    }
    return step
};
profile
내 지식을 공유할 수 있는 대담함

0개의 댓글