KEEP GOING
[python] 백준 2164번 : 카드2 (queue, 2*n-m 규칙 찾기) 본문
반응형
https://www.acmicpc.net/problem/2164
1. 코드 구현
q = deque([i+1 for i in range(int(input()))])
while q:
for i in range(2):
a = q.popleft()
if not q:
print(a)
break
if i == 1:
q.append(a)
2. 코드 구현 (숏코딩)
n,m = int(input()), 1
while m<n:
m <<= 1
print(2*n-m)
입력값에 대한 결과를 확인하면 다음과 같이 일정한 규칙이 존재함을 확인할 수 있다.
이를 식으로 표현하면
OUPUT = INPUT*2 - INPUT보다 크거나 같은 2의 제곱수
따라서 이를 구현하면 위 코드와 같이 풀이할 수 있다.
반응형
'code review > stack-queue' 카테고리의 다른 글
[python] 프로그래머스 : 기능개발 (stack, queue) (0) | 2022.02.18 |
---|---|
[python] 백준 2504번 : 괄호의 값 (stack) (0) | 2022.02.02 |
[python] 백준 1935번 : 후위 표기식2 (0) | 2022.01.27 |
백준 11286번: 절댓값 힙(우선순위 큐) (0) | 2021.11.23 |
백준 11279번: 최대 힙(maxHeap) (0) | 2021.11.21 |
Comments