티스토리 뷰
https://school.programmers.co.kr/learn/courses/30/lessons/120844
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
매개변수로 배열과 회전 방향이 주어지면, 회전 방향에 따라 배열의 요소를 재배치시키는 문제
<Test case 1>
numbers = [1, 2, 3] / direction = "right" 이면 오른쪽으로 한 칸씩 회전시키기
result = [3, 1, 2]
<Test case 2>
numbers = [4, 455, 6, 4, -1, 45, 6] / direction = "left"이면 왼쪽으로 한 칸씩 회전시키기
result = [455, 6, 4, -1, 45, 6, 4]
Solution.
1. direction이 right이면 배열의 맨 마지막 요소가 맨 첫 번째 요소로 이동
※ Last in First out의 특징을 가진 'Stack' 자료구조를 이용하기
Python에서는 Stack 자료구조를 리스트(배열)로 활용
=> 맨 마지막 요소를 꺼내기 : list.pop()
=> 꺼낸 요소를 배열의 첫 번째 인덱스에 삽입하기 : list.insert(0, 꺼낸 요소)
2. direction이 left이면 배열의 맨 첫 번째 요소가 맨 마지막 요소로 이동
=> First in First out의 특징을 가진 'Queue' 자료구조를 이용하기
Python에서는 Queue 자료구조를 'from collections import deque' 활용
=> 맨 처음에 들어온 요소를 꺼내서 맨 마지막 index에 삽입 : deque.rotate(-1)
from collections import deque
def solution(numbers, direction):
answer = []
temp = 0
if direction == 'right': #right일 때는 stack
temp = numbers.pop() #맨 마지막으로 들어온 요소을 꺼내서 맨 처음 index에 삽입
numbers.insert(0, temp)
answer = numbers
else:
numbers = deque(numbers) #left일 때는 deque
numbers.rotate(-1) #맨 처음에 들어온 요소를 꺼내서 맨 마지막 index에 삽입
answer = list(numbers)
return answer
'Python' 카테고리의 다른 글
[프로그래머스] deque을 활용한 문제 풀이 (0) | 2025.02.03 |
---|---|
[프로그래머스] List 인덱싱을 활용한 문제 풀이 (1) | 2025.01.30 |
[프로그래머스] 가까운 수 (sorted함수 연습) (0) | 2025.01.23 |
[시각화] Matplotlib (0) | 2025.01.15 |
[프로그래머스] 피자 나눠먹기 문제 모음 (0) | 2025.01.13 |
- # 프로그래머스 # 카펫 # 완전탐색
- python #deque #프로그래머스 #공 던지기 #문자열 계산하기 #코딩테스트
- #docker #image #build #dockerfile
- # 프로그래머스 #연속된 부분수열의 합 #이중 포인터 #누적합
- #docker #docker compose
- #자연어 처리 #정수 인코딩 #빈도 수 기반
- 머신러닝 #lightgbm #goss #ebf
- randomforest #bagging #머신러닝 #하이퍼파라미터 튜닝
- 잘라서 배열로 저장하기 #2차원으로 만들기
- #polars #대용량 데이터셋 처리
- 자연어 처리 #정제 #정규표현식 #어간 추출 #표제어 추출
- python #프로그래머스 #리스트 #인덱싱
- #프로그래머스 #안전지대 #시뮬레이션
- #물고기 종류별 대어 찾기 #즐겨찾기가 가장 많은 식당 정보 출력하기 #mysql #programmers
- #attention #deeplearning
- # 할인행사 #counter #딕셔너리 #프로그래머스
- seaborn #데이터시각화 #타이타닉
- #seq2seq #encoder #decoder #teacher forcing
- 머신러닝 #xgboost #
- #python #프로그래머스 #외계어사전 #itertools #순열과조합
- 머신러닝 #project #classification #dacon
- nlp #토큰화 #nltk #konply
- python #프로그래머스 #겹치는선분의길이
- #tf idf
- 프로젝트 #머신러닝 #regression #eda #preprocessing #modeling
- #opencv #이미지 연산 #합성
- 로지스틱 회귀 #오즈비 #최대우도추정법 #머신러닝
- pca #주성분분석 #특이값분해 #고유값분해 #공분산행렬 #차원의 저주
- #docker #container #docker command
- #opencv #이미지 읽기 #이미지 제작 #관심영역 지정 #스레시홀딩