티스토리 뷰
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 |
- ridge #lasso #정규화모델 #머신러닝
- 파이썬 #코딩테스트 #프로그래머스 #스택 #큐
- #seq2seq #encoder #decoder #teacher forcing
- #opencv #이미지 연산 #합성
- seaborn #데이터시각화 #타이타닉
- #tf idf
- 프로젝트 #머신러닝 #regression #eda #preprocessing #modeling
- gan #생성자 #판별자 #적대적 신경 신경망 #딥러닝 #computer vision
- #python #프로그래머스 #외계어사전 #itertools #순열과조합
- 로지스틱 회귀 #오즈비 #최대우도추정법 #머신러닝
- #물고기 종류별 대어 찾기 #즐겨찾기가 가장 많은 식당 정보 출력하기 #mysql #programmers
- python #프로그래머스 #리스트 #인덱싱
- 머신러닝 #lightgbm #goss #ebf
- 머신러닝 #project #classification #dacon
- #attention #deeplearning
- rnn #딥러닝 #시계열 데이터 #장기의존성 문제
- python #deque #프로그래머스 #공 던지기 #문자열 계산하기 #코딩테스트
- subquery #sql 코딩테스트
- 파이썬 #시각화 #matplotlib
- #자연어 처리 #정수 인코딩 #빈도 수 기반
- 딥러닝 #오차역전파 #연쇄법칙 #계산그래프 #최적화
- 자연어 처리 #정제 #정규표현식 #어간 추출 #표제어 추출
- 잘라서 배열로 저장하기 #2차원으로 만들기
- 머신러닝 #xgboost #
- nlp #토큰화 #nltk #konply
- python #프로그래머스 #겹치는선분의길이
- randomforest #bagging #머신러닝 #하이퍼파라미터 튜닝
- html #javascript #구구단 출력
- pca #주성분분석 #특이값분해 #고유값분해 #공분산행렬 #차원의 저주
- #opencv #이미지 읽기 #이미지 제작 #관심영역 지정 #스레시홀딩