파이썬 큐 front, rear 값이 안나와요

조회수 1119회

class MyQueue : def init(self, max_size): self.max_size = max_size self.front = -1 self.rear = 0 self.myList = []

def enqueue(self, item):
    if self.isFull():
        return None
    else :
        self.myList.append(item)
        self.rear = self.rear + 1

def dequeue(self):
    if self.isEmpty():
        return None
    else:
        self.rear = self.rear - 1
        return self.myList.pop(0)

def isEmpty(self):
    if (self.rear > 0):
        return False
    else:
        return True

def isFull(self):
    if (self.max_size <= self.rear):
        return True
    else:
        return False

def front(self):
    if self.isEmpty():
        return None
    else:
        return self.myList[self.front]

def rear(self):
    if self.isEmpty():
        return None
    else:
        return self.myList[self.rear]

q = MyQueue(5) print(q.max_size) print(q.isEmpty()) q.enqueue(100) q.enqueue(200) q.enqueue(300) q.enqueue(400) q.enqueue(500) print(q.front()) #오류부분 print(q.rear()) #오류부분 print(q.isFull()) print(q.dequeue()) print(q.dequeue()) print(q.dequeue()) print(q.dequeue()) print(q.dequeue())

이렇게 하면 front랑 rear만 오류가 나오네요. 맨 앞의 값이랑 맨 뒤의 값을 받으려면 어떻게 해야 할까요?

  • (•́ ✖ •̀)
    알 수 없는 사용자

1 답변

  • front와 rear를 함수로 한번, 변수로 한번 정의하셨네요.

    __init__을 보시면 self.front = -1이라 되어있는데요. 아래에는 def front(self):라고 front를 변수로 적어두었습니다.

    따라서 작성자께서는 front를 함수로 쓰려고 했으나, python은 front를 int로 생각해 오류가 나는것이지요.

    변수와 함수 이름을 서로 다른것으로 바꾸면 문제가 해결될겁니다.

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)