์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- javascript
- JS
- ๊ตญ๋น์ง์
- ํ๋ก๊ทธ๋๋จธ์ค
- ์ฝ๋ฉ
- heapq
- ํฌ๋กค๋ง
- ๋ ธ๋ง๋์ฝ๋
- mongodb
- ๋ฐฑ์ค
- ๋๋ฆผ์ฝ๋ฉ
- ์ฝ๋ฉํ ์คํธ
- fe
- react
- error
- ํ ์ดํ๋ก์ ํธ
- ๊ฐ๋ฐ
- node.js
- ํ๋ก ํธ์๋
- ์ฝ๋ฉ์ ํ
- ์๊ณ ๋ฆฌ์ฆ
- ๋ชจ๊ฐ์ฝ
- ํ์ด์ฌ
- Til
- ํ๋ก์ ํธ
- ๊ทธ๋ฆฌ๋
- HTML
- Python
- CSS
- KDT
- Today
- Total
๐ฑ โ ๐ณ
[๋ฐฑ์ค] 10866๋ฒ: ๋ฑ python ๋ณธ๋ฌธ
https://www.acmicpc.net/problem/10866
10866๋ฒ: ๋ฑ
์ฒซ์งธ ์ค์ ์ฃผ์ด์ง๋ ๋ช ๋ น์ ์ N (1 โค N โค 10,000)์ด ์ฃผ์ด์ง๋ค. ๋์งธ ์ค๋ถํฐ N๊ฐ์ ์ค์๋ ๋ช ๋ น์ด ํ๋์ฉ ์ฃผ์ด์ง๋ค. ์ฃผ์ด์ง๋ ์ ์๋ 1๋ณด๋ค ํฌ๊ฑฐ๋ ๊ฐ๊ณ , 100,000๋ณด๋ค ์๊ฑฐ๋ ๊ฐ๋ค. ๋ฌธ์ ์ ๋์์์ง
www.acmicpc.net
๋ฌธ์ ์ ๋ณด
๋ฌธ์ ์ ํ ๋์ด๋ ๊ฑธ๋ฆฐ ์๊ฐ ์ค์ค๋ก ๊ตฌํ ์ฑ๊ณต
๋ฑ | ์ค๋ฒ4 | 10m | O |
์ค๊ณ ๋ฐฉ๋ฒ
๋ด๊ฐ ๊ตฌํํ ๋ฐฉ๋ฒ
๋ฑ ํด๋์ค ์์ฑ ํ ๊ฐ ๋ฉ์๋ ๊ตฌํ
๋ค๋ฅธ ํ์ด 1
๊ฐ๋จํ๊ฒ deque ๋ชจ๋์ ์ฌ์ฉํ ํ์ด
๋ค๋ฅธ ํ์ด 2
dictionary๋ฅผ ์ด์ฉํ์ฌ switch-case๋ฌธ์ ๊ตฌํ
์ด๋ฅผ ์ด์ฉํ์ฌ key๊ฐ์ ๊ฐ์ง๊ณ ๋์ ๋๋ฆฌ์ ์ ๊ทผํ์ฌ ๋์๋๋ value๊ฐ์ ํตํด ํจ์๋ฅผ ํธ์ถ
์ฝ๋
๋ด ํ์ด
import sys
input = sys.stdin.readline
class Deque:
def __init__(self):
self.data = []
def size(self):
return len(self.data)
def empty(self):
if len(self.data) == 0:
return 1
else:
return 0
def push_front(self, x):
self.data.insert(0, x)
def push_back(self, x):
self.data.append(x)
def pop_front(self):
if len(self.data) == 0:
return -1
else:
ans = self.data[0]
self.data = self.data[1:]
return ans
def pop_back(self):
if len(self.data) == 0:
return -1
else:
ans = self.data[-1]
self.data = self.data[:-1]
return ans
def front(self):
if len(self.data) == 0:
return -1
else:
return self.data[0]
def back(self):
if len(self.data) == 0:
return -1
else:
return self.data[-1]
n = int(input())
deque = Deque()
for _ in range(n):
cmd = input().split()
op = cmd[0]
if op == 'size':
print(deque.size())
elif op == 'empty':
print(deque.empty())
elif op == 'push_front':
deque.push_front(cmd[1])
elif op == 'push_back':
deque.push_back(cmd[1])
elif op == 'pop_front':
print(deque.pop_front())
elif op == 'pop_back':
print(deque.pop_back())
elif op == 'front':
print(deque.front())
elif op == 'back':
print(deque.back())
else:
print('err')
๋ค๋ฅธ ํ์ด 1
from collections import deque
import sys
d = deque()
n = int(input())
for i in range(n):
cmd = sys.stdin.readline().split()
if cmd[0] == "push_front":
d.appendleft(cmd[1])
elif cmd[0] == "push_back":
d.append(cmd[1])
elif cmd[0] == "pop_front":
if d:
print(d[0])
d.popleft()
else:
print("-1")
elif cmd[0] == "pop_back":
if d:
print(d[len(d) - 1])
d.pop()
else:
print("-1")
elif cmd[0] == "size":
print(len(d))
elif cmd[0] == "empty":
if d:
print("0")
else:
print("1")
elif cmd[0] == "front":
if d:
print(d[0])
else:
print("-1")
elif cmd[0] == "back":
if d:
print(d[len(d) - 1])
else:
print("-1")
๋ค๋ฅธ ํ์ด 2
def push_front(x, deq):
tmp = [x]
tmp.extend(deq)
deq = tmp
return deq
def push_back(x, deq):
deq.append(x)
return deq
def pop_front(deq):
if deq :
print(deq.pop(0))
else : #๋น ๋ฆฌ์คํธ == False
print(-1)
def pop_back(deq):
if deq :
print(deq.pop())
else :
print(-1)
def size(deq):
print(len(deq))
def empty(deq) :
if not deq :
print(1)
else :
print(0)
def front(deq) :
if deq :
print(deq[0])
else :
print(-1)
def back(deq) :
if deq :
print(deq[-1])
else :
print(-1)
statements_dict = {
'push_front' : push_front,
'push_back' : push_back,
'pop_front' : pop_front,
'pop_back' : pop_back,
'size' : size,
'empty' : empty,
'front' : front,
'back' : back
}
N = int(input())
deq = []
for _ in range(N) :
statement = input().split(" ")
if len(statement) == 1 :
command = statement[0]
statements_dict[command](deq)
else :
command, x = statement
deq = statements_dict[command](x, deq)
์๊ฐ ๋ณต์ก๋
$O(n)$
์ด๋ ค์ ๊ฑฐ๋ ์๋ก ์๊ฒ๋ ์
deque ๋ชจ๋์ ์กด์ฌ(appendleft, popleft ๋ฑ๋ฑ ..)
dictionary๋ก ๊ตฌํํ๋ ๋ฐฉ๋ฒ
.. ์์ง python์ ๋ํด์๋ ๋ฐฐ์๋๊ฐ์ผ ํ ๊ฒ ์ ๋ง ๋ง๊ตฌ๋ ๋๊ผ์
๋ฐฐ์ธ๊ฒ ๋๋ฌด ๋ง์ !! ๐ญ
์ฐธ๊ณ ์๋ฃ
'Algorithms' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค] 11000๋ฒ : ๊ฐ์์ค python (0) | 2023.01.11 |
---|---|
[๋ฐฑ์ค] 11399๋ฒ: ATM - python (0) | 2023.01.09 |
[๋ฐฑ์ค] 11047๋ฒ: ๋์ 0 python (0) | 2023.01.08 |
[๋ฐฑ์ค] 10845๋ฒ : ํ python (0) | 2023.01.06 |
[๋ฐฑ์ค] 1406๋ฒ: ์๋ํฐ python (0) | 2023.01.05 |