커뮤니티
포인트
쿠폰
내 강의실
국비 신청 내역
증명서
계정
로그아웃
학습 질문
개발 일지
나의 활동
답변 완료
백준 큐 실버 4
실무에 바로 쓰이는 알고리즘 by Python
2주차
북마크
정*영
댓글
1
추천
0
조회수
5
조회수
5
답변 완료

* 겪고 있는 문제 상황을 최대한 자세하게 작성해주세요.

* 문제 해결을 위해 어떤 시도를 해보았는지 구체적으로 함께 알려주세요.


시간 초과 오류가 나는데 어떻게 해결해야 할지 모르겠습니다.








import sys


class Node:
    def __init__(self, val, next):
        self.val = val
        self.next = next


class Queue:
    def __init__(self):
        self.fro = None


    def push(self, val):
        if not self.fro:
            self.fro = Node(val, None)
            return
        
        node = self.fro
        while(node.next):
            node = node.next
        node.next = Node(val, node)
    
    def pop(self):
        if not self.fro:
            return -1
        
        node = self.fro
        self.fro = node.next
        return node.val
   
    def size(self):
        count = 0
        node = self.fro
        while(node):
            node = node.next
            count += 1
        return count
   
    def empty(self):
        return 1 if not self.fro else 0
   
    def front(self):
        return self.fro.val if self.fro else -1
    
    def back(self):
        if not self.fro:
            return -1
        node = self.fro
        while(node.next):
            node = node.next
        return node.val
    
T = int(sys.stdin.readline().strip())
q = Queue()


for i in range(T):
    s = sys.stdin.readline().strip().split()
    if s[0] == 'push':
        q.push(int(s[1]))
    elif s[0] == 'pop':
        print(q.pop())
    elif s[0] == 'size':
        print(q.size())
    elif s[0] == 'empty':
        print(q.empty())
    elif s[0] == 'front':
        print(q.front())
    elif s[0] == 'back':
        print(q.back())
취소
 공유
취소
댓글 0
댓글 알림
나의얼굴