문제
코드
My answer
import sys
from collections import deque
input=sys.stdin.readline
n=int(input())
stack=deque([i+1 for i in range(n)])
while(len(stack)!=1):
stack.popleft()
a=stack[0]
stack.popleft()
stack.append(a)
print(*stack)
Another answer
n,s=int(input()),1
while s<n:
s*=2
print(s if s==n else 2*n-s)
풀이
맨처음에는 그냥 pop을 써서 풀었었는데 시간초과가 떴다. 그래서 deque를 썻더니 무사히 통과했다. 아래 코드는 규칙을 따로 발견해서 푼 코드인데, 시간은 매우 빠른데 문제를 직관적으로 보면 그냥 스택을 이용하는게 제일 좋은 것 같다?.
728x90
반응형
'코딩테스트 > 백준[Python]' 카테고리의 다른 글
[Python] 백준 #4949- 균형잡힌 세상 (0) | 2022.01.19 |
---|---|
[Python] 백준 #1874- 스택 수열 (0) | 2022.01.19 |
[Python] 백준 #18258 - 큐 2 (0) | 2022.01.19 |
[Python] 백준 #1059- 좋은 구간 (0) | 2022.01.19 |
[Python] 백준 #11399- ATM (0) | 2022.01.18 |