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)을 하게 되면 오른쪽으로 회전하게 된다!!!!
profile
To be a changer who can overturn world

0개의 댓글