백준 2164 문제 풀이
https://www.acmicpc.net/problem/2164
풀이
전형적인 큐 연습 문제로,
제일 위에 있는 카드를 제일 아래에 있는 카드 밑으로 옮기는 방안을
- deque 객체의 rotate() 메서드를 사용하여 구현하거나,
- popleft()와 append()를 사용하여 구현하느냐는 선택의 문제
● deque 객체의 rotate() 메서드 사용 코드
#rotate() 사용
import sys
from collections import deque
N = int(sys.stdin.readline().rstrip())
lst = deque([i+1 for i in range(N)])
#print(lst)
while True:
if len(lst) == 1:
break
lst.popleft()
lst.rotate(-1)
print(lst[0])
"""
6
4
"""
● deque 객체의 popleft() 와 append()를 사용 코드
#append() 사용
import sys
from collections import deque
N = int(sys.stdin.readline().rstrip())
lst = deque([i+1 for i in range(N)])
#print(lst)
while True:
if len(lst) == 1:
break
lst.popleft()
lst.append(lst.popleft())
print(lst[0])
"""
6
4
"""
☞ 큐 (deque) 사용법은 이전 글 참고
'코딩라이브러리 > 파이썬' 카테고리의 다른 글
파이썬 윤년 계산하기 (with 백준 2753) (1) | 2024.06.07 |
---|---|
[파이썬] 시간 함수 어떻게 쓰나 (with 백준 10699) (2) | 2024.06.05 |
파이썬 스택, 큐 deque (with 백준 18258) (0) | 2024.05.30 |
파이썬 중복제거 set 집합함수 (with 백준 2776) (0) | 2024.05.29 |
파이썬 Counter (with 백준 10815, 10816) (0) | 2024.05.28 |