본문 바로가기
백준

[백준] 2164번 : 카드2 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트

by 우당탕탕 개발자 2023. 7. 29.
728x90
반응형

 

 

2164번: 카드2

N장의 카드가 있다. 각각의 카드는 차례로 1부터 N까지의 번호가 붙어 있으며, 1번 카드가 제일 위에, N번 카드가 제일 아래인 상태로 순서대로 카드가 놓여 있다. 이제 다음과 같은 동작을 카드가

www.acmicpc.net

 

1. 문제 설명

2. 풀이과정

  1. sys.stdin.readline() 함수를 사용하기 위해 sys 모듈을 불러온다. import sys
  2. popleft() 함수를 사용하기 위해 deque 자료구조를 사용하고, deque 자료구조를 사용하기 위해 deque 모듈을 불러온다. from collections import deque
  3. 카드의 수를 입력받는다. N = int(sys.stdin.readline())
  4. 1부터 입력받은 수의 번호까지 차례대로 들어있는 deque을 생성한다. queue = deque(i for i in range(1, N + 1))
  5. 카드가 1장 남을 때까지 반복하며 while (len(queue) > 1)
  6. 제일 앞 카드를 버리고 queue.popleft()
  7. 그다음 앞에 오는 카드를 제일 아래에 있는 카드 밑으로 넣는다. queue.append(queue.popleft())
  8. 과정을 반복하다가 카드가 1장이 남으면 해당 카드를 출력한다. print(queue[0])
반응형

3. 소스코드

import sys
from collections import deque

N = int(sys.stdin.readline())
queue = deque(i for i in range(1, N + 1))

while (len(queue) > 1):
    queue.popleft()
    queue.append(queue.popleft())

print(queue[0])
728x90
반응형