잡다로그

[Python/코테] 백준 2164 카드2 본문

Algorithm

[Python/코테] 백준 2164 카드2

날으는다람쥐 2023. 11. 13. 16:15

2164 카드2

문제 및 조건 설명: https://www.acmicpc.net/problem/2164

알고리즘 설계

💡idea.

제일 위와 아래 양쪽에서 동작을 수행하므로 덱(deque)자료구조를 사용한다.

 

🎲step.

  1. 제일 위를 맨 앞, 제일 아래를 맨 뒤로 생각하고 주어진 입력 길이만큼의 숫자를 저장하는 덱을 만든다.
  2. popleft() 한다.
  3. popleft() 한 뒤, 그 원소를 push한다.
  4. 2~3번을 반복한 뒤, 원소가 하나 남으면 출력한다.

알고리즘 구현

from collections import deque

n = int(input())
d = deque()

for i in range(1, n+1):
    d.append(i)

while len(d) > 1:
    d.popleft()
    card = d.popleft()
    d.append(card)

print(d.pop())

 

'Algorithm' 카테고리의 다른 글

[C++/코테] BFS  (0) 2023.11.13
[Python/코테] 백준 27497 블록  (0) 2023.11.13
[Python/코테] 백준 9012 괄호  (0) 2023.11.13
[Python/코테] 백준 1926 그림  (0) 2023.11.11
[C++/코테] 스택(Stack)의 활용: 수식의 괄호 쌍  (0) 2023.11.10
Comments