1. 문제와 예제
2. 전체 코드
1) 큐 사용
# Queue 사용
from collections import deque
# 입력 받기
N = int(input())
deq = deque([(i+1) for i in range(N)])
l = len(deq)
for _ in range(l-1):
# 제일 위 카드 버리기
deq.popleft()
# 위 카드 제일 아래로 옮기기
num = deq.popleft()
deq.append(num)
# 결과 출력하기
print(deq[0])
큐 구조를 사용하는 대표적인 구조가 이러한 구조다. 큐는 삽입/삭제 연산의 시간 복잡도가 O(1)로 매우 빠르다는 장점이 있다.
2) 규칙 발견해서 사용
# 규칙 발견해서 사용
# N = 1 -> output = 1 = (1-0)
# N = 2 -> output = 2 = (2-1)*2
# N = 3 -> output = 2 = (3-2)*2
# N = 4 -> output = 4 = (4-2)*2
# N = 5 -> output = 2 = (5-4)*2
# N = 6 -> output = 4 = (6-4)*2
# N = 7 -> output = 6 = (7-4)*2
# N = 8 -> output = 8 = (8-4)*2
N = int(input())
i = 1
if (N == 1):
print(1)
else:
while (i < N):
i *= 2
i = i // 2
print((N - i) * 2)
문제 설명을 이해하기 위해 N이 1~8일 때 결과를 써보다가 규칙성을 발견했다.
'백준' 카테고리의 다른 글
[백준] 4949번 파이썬 (균형잡힌 세상) (0) | 2024.03.20 |
---|---|
[백준] 2839번 파이썬 (설탕 배달) (0) | 2024.03.20 |
[백준] 1920번 파이썬 (수 찾기) (0) | 2024.03.20 |
[백준] 1018번 파이썬 (체스판 다시 칠하기) (0) | 2024.03.18 |
[백준] 11866번 파이썬 (요세푸스 문제 0) (0) | 2024.03.18 |