728x90
문제
접근
- 민다는거는 순환 한다는 것과 같다.
- 얼만큼 한칸씩 돌았는지 알아야함
배경지식
deque
Python의 데이터 구조로 양쪽 끝에서 요소를 효율적으로 삽입하고 삭제할 수 있습니다. 스택과 큐의 조합으로 생각할 수 있습니다.
스택과 큐를 한번에!!
사용법
from collections import deque
1. 요소 추가
- 오른쪽 끝에 요소 추가는 append
- 왼쪽 끝에 요소를 추가 할 때는 appendleft
my_deque.append(10) my_deque.appendleft(5)
2. 요소 제거
- 가장 오른쪽 요소 제거 및 반환: pop()
- 맨 왼쪽 요소 제거 및 반환: popleft()
rightmost_element = my_deque.pop() leftmost_element = my_deque.popleft()
### 3. 회전시키기
- 오른쪽으로 회전 : rotate(양수숫자)
- 왼쪽으로 회전 : rotate(음수숫자)
my_deque.rotate(1) # Rotates the deque to the right by 1 position
my_deque.rotate(-1) # Rotates the deque to the left by 1 position
# 풀이
from collections import deque
def solution(A, B):
Alist = deque(A)
Blist = deque(B)
for i in range(len(Alist)):
if Alist == Blist:
return i
Alist.rotate(1)
return -1
1. A와 B를 데크로 만든다
2. Alist의 길이만큼 반복문을 돌린다
3. 만약 Alist와 Blist가 같으면 i(옮긴 횟수)를 리턴
4. 같지 않다면 오른쪽으로 한칸 이동
=> 즉 A == B 일때 까지 순환시킴
5. 만약 순환시켰는데 일치하지 않는다면 -1 반환
반응형
'coding test' 카테고리의 다른 글
자료구조와 메모리 구조 (0) | 2023.06.22 |
---|---|
시간 복잡도 줄이기 (0) | 2023.06.17 |
프로그래머스 k의 개수 (0) | 2023.06.15 |
프로그래머스 A로 B만들기 (0) | 2023.06.15 |
프로그래머스 치킨쿠폰 (0) | 2023.06.15 |