프로그래머스 풀이/level0

[Programmers] level 0) 문제 '배열 회전시키기' 풀이

진기명기 2023. 3. 2. 23:55
🫠 Programmers (level 0) 
👉🏻 문제 37번 (배열 회전시키기) : 배열 요소를 right & left 방향으로 회전시키기

 

 

 


function solution(numbers, direction) {

  // 새로운 배열에 넣기
  let result = []
  
  // 만약 left라면
  let t = numbers[0]
  
  if(direction == 'left'){
  let i = 0
    while(i < numbers.length){
      result.push(numbers[i] = numbers[i+1])
      i++
      if(result.length === numbers.length-1){
        result.push(numbers[numbers.length-1] = t)
        break
      }
    }
  }

  // 만약 right라면
  let f = numbers[numbers.length-1]
  
  if(direction == 'right'){
    let i = numbers.length-1
    while(i >= 0){
    result.unshift(numbers[i] = numbers[i-1])
    i--
    if(result.length === numbers.length-1){
      result.unshift(numbers[0] = f)
      break
    }
    }
  }
  return result
  
}

 

✅ 확인할 점

💡 나는 left & right를 기준으로 2개의 while문을 작성해서 풀었는데..! 다른 분들 풀이를 보니 아래와 같이 간단해서 머리가 얼얼해졌다.

 

💡 right일 때, pop()함과 동시에 unshift() 

💡 left일 때, shift()함과 동시에 push() 

 

이렇게 4줄이면 끝날 걸.. 저렇게 길에 풀어놓았으니.. 반성하자 진짜.. 왜 이렇게 지식 활용을 못하는 거야.. 🫠