1. quiz
- 정수가 담긴 배열 numbers와 문자열 direction가 매개변수로 주어집니다. 배열 numbers의 원소를 direction방향으로 한 칸씩 회전시킨 배열을 return하도록 solution 함수를 완성해주세요.
2. answer
def solution(numbers, direction):
if direction == "right":
numbers.insert(0,numbers[-1])
numbers.pop()
return numbers
else:
numbers.append(numbers[0])
numbers.pop(0)
return numbers
- 지금까지 문제중 가장 오래 고민했으나, 어려운 방식으로 고민해서..시간만 오래 걸렸다. 막상 생각해보니 아주 간단한 문제였다. 덕분에 list를 다양하게 활용할 수 있었음.
3. 다른 사람의 풀이
def solution(numbers, direction):
return [numbers[-1]] + numbers[:-1] if direction == 'right' else numbers[1:] + [numbers[0]]
from collections import deque
def solution(numbers, direction):
numbers = deque(numbers)
if direction == 'right':
numbers.rotate(1)
else:
numbers.rotate(-1)
return list(numbers)
- 아주 간단하게 list의 index slicing을 활용하면 쉽게 해결할 수 있는 문제였다. 정말 간단하게 해결할 수 있는데 왜 이리 고민했던건지!!!!
- 계속 꾸준히 코테는 준비하고 고민해야할 필요성을 더욱 느꼈다.
4.
- deque(), rotate()를 사용하면 간단하게 리스트를 회전시킬 수 있다.
- rotate(-1)을 하게 되면 왼쪽으로 회전, rotate(1)을 하게 되면 오른쪽으로 회전하게 된다!!!!