티스토리 뷰
728x90
문제
정수가 담긴 배열 numbers와 문자열 direction가 매개변수로 주어집니다. 배열 numbers의 원소를 direction방향으로 한 칸씩 회전시킨 배열을 return하도록 solution 함수를 완성해주세요.
제한사항
- 3 ≤ numbers의 길이 ≤ 20
- direction은 "left" 와 "right" 둘 중 하나입니다.
입출력 예
해당 문제 풀이 방법
- 단순하게 리스트의 배열 위치만 바꾸면 되는 문제라 생각하였음. left일 경우와 right일 경우, 배열의 제일 첫 번째 또는 마지막 원소를 뽑아내고, 나머지 원소들과 재배열 하면 된다고 생각했음
def solution(numbers, direction):
array = []
n = len(numbers)
if direction == "left":
array = numbers[1:]
array.append(numbers[0])
else:
array.append(numbers[-1])
array.extend(numbers[0:n-1])
return array
내가 쓴 코드. 여기서 리스트에 append하면 '[]' 리스트 자체로 들어가서 extend를 사용하는 것이 더 적절해 보임
더 간단한 코드
def solution(numbers, direction):
return [numbers[-1]] + numbers[:-1] if direction == 'right' else numbers[1:] + [numbers[0]]
훨씬 더 간결하고 한눈에 보기 쉬움
그 다음에 해당 문제를 풀 때 deque를 이용하고 싶었으나 하지 못했음. 다른 사람 풀이가 있었음
from collections import deque
def solution(numbers, direction):
numbers = deque(numbers)
if direction == 'right':
numbers.rotate(1)
else:
numbers.rotate(-1)
return list(numbers)
자료 구조 deque(큐)를 사용하면 rotate method가 사용이 가능하다. 마지막엔 list로 변환 시켜주면 되는 간단한 코드임
728x90
'Skills > Pythons' 카테고리의 다른 글
[macOS] pip 설치 방법 (0) | 2023.03.08 |
---|---|
[Numpy] np.random.normal/randn (0) | 2023.03.04 |
[Python] Jupyter module - %load_ext autoreload %autoreload 2 (0) | 2022.12.23 |
[Python] from __future__ import print_function (0) | 2022.12.23 |
[Python] None 보다는 예외를 발생시키는 방법 (2) | 2022.12.13 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- Unsupervised learning
- 파이썬
- docker
- Prompt
- NLP
- vscode 자동 저장
- few-shot learning
- 구글드라이브서버연동
- 데이터셋다운로드
- 파이썬 딕셔너리
- stylegan
- clip
- 도커 컨테이너
- 구글드라이브연동
- 퓨샷러닝
- prompt learning
- CNN
- cs231n
- python
- 파이썬 클래스 계층 구조
- style transfer
- 서버구글드라이브연동
- 구글드라이브서버다운
- 딥러닝
- support set
- 프롬프트
- 구글드라이브다운
- 도커
- 파이썬 클래스 다형성
- 서버에다운
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
글 보관함
250x250