🫠 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줄이면 끝날 걸.. 저렇게 길에 풀어놓았으니.. 반성하자 진짜.. 왜 이렇게 지식 활용을 못하는 거야.. 🫠
'프로그래머스 풀이 > level0' 카테고리의 다른 글
[Programmers] level 0) 문제 '문자열 정렬하기(2)' 풀이 (0) | 2023.03.04 |
---|---|
[Programmers] level 0) 문제 '약수 구하기' 풀이 (0) | 2023.03.03 |
[Programmers] level 0) 문제 '가장 큰 수 찾기' 풀이 (0) | 2023.03.02 |
[Programmers] level 0) 문제 '주사위의 개수' 풀이 (0) | 2023.03.02 |
[Programmers] level 0) 문제 'n의 배수 고르기' 풀이 (0) | 2023.03.02 |