๊ด€๋ฆฌ ๋ฉ”๋‰ด

๐Ÿ’ป๐Ÿ’ญ๐ŸŽง๐ŸŒ

BOJ 18258 : ํ 2 (Python) ๋ณธ๋ฌธ

์•Œ๊ณ ๋ฆฌ์ฆ˜/๋ฐฑ์ค€ ํ’€์ด

BOJ 18258 : ํ 2 (Python)

adorableco 2023. 9. 20. 14:33
๋ฐ˜์‘ํ˜•

๋ฌธ์ œ

https://www.acmicpc.net/problem/18258

 

18258๋ฒˆ: ํ 2

์ฒซ์งธ ์ค„์— ์ฃผ์–ด์ง€๋Š” ๋ช…๋ น์˜ ์ˆ˜ N (1 ≤ N ≤ 2,000,000)์ด ์ฃผ์–ด์ง„๋‹ค. ๋‘˜์งธ ์ค„๋ถ€ํ„ฐ N๊ฐœ์˜ ์ค„์—๋Š” ๋ช…๋ น์ด ํ•˜๋‚˜์”ฉ ์ฃผ์–ด์ง„๋‹ค. ์ฃผ์–ด์ง€๋Š” ์ •์ˆ˜๋Š” 1๋ณด๋‹ค ํฌ๊ฑฐ๋‚˜ ๊ฐ™๊ณ , 100,000๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™๋‹ค. ๋ฌธ์ œ์— ๋‚˜์™€์žˆ์ง€

www.acmicpc.net

 

 

์ฝ”๋“œ

import sys

N = int(sys.stdin.readline().rstrip())

que = [0] * 2000001
front = 0
rear = 0
no = 0

def is_empty():
    global no
    if no<=0:
        return 1
    else: return 0

def size():
    global no
    return no

def push(num):
    global rear
    global no
    que[rear] = num
    rear += 1
    no += 1
    if rear == 2000001:
        rear = 0

def pop():
    global no
    global front
    if no<=0:
        return -1
    else:
        x = que[front]
        front += 1
        no -= 1
        if front == 2000001:
            front = 0
        return x

def front_check():
    global front
    if is_empty()==1:
        return -1
    else: return que[front]

def back():
    global rear
    if is_empty()==1:
        return -1
    elif rear == 0:
        return que[2000001-1]
    
    else : return que[rear-1]

for i in range(N):
    a = sys.stdin.readline().rstrip()
    b = ''
    if a == "front":
        print(front_check())
    elif a == "back":
        print(back())
    elif a == "size":
        print(size())
    elif a == "empty":
        print(is_empty())
    elif a == "pop":
        print(pop())
    else:
        a,b = a.split()
        push(int(b))

 

 

ํ’€์ด

 

๊ทธ๋ƒฅ ํ ๊ธฐ๋ณธ ํ•จ์ˆ˜ ์“ฐ๋Š” ๋ฌธ์ œ...

๊ทผ๋ฐ python3 ๊ธฐ์ค€์œผ๋กœ ๊ทธ๋ƒฅ input() ์‚ฌ์šฉ ์‹œ ์‹œ๊ฐ„์ดˆ๊ณผ๊ฐ€ ๋œฌ๋‹ค. 

๊ทธ๋ž˜์„œ input์„ sys.stdin.readline().rstrip() ์œผ๋กœ ๋ฐ”๊ฟ”์„œ ํ’€๋ฉด ์‹œ๊ฐ„ ์ดˆ๊ณผ๊ฐ€ ํ•ด๊ฒฐ๋œ๋‹ค.

์ด๊ฒƒ๋•Œ๋ฌธ์ธ์ง€๋„ ๋ชจ๋ฅด๊ณ  ๋‹ค๋ฅธ ๋ถ€๋ถ„๋งŒ ๊ณ„์† ๊ณ ์ณค๋‹ค.....

 

๋ฐ˜์‘ํ˜•