-
[백준] 큐2 - 18258백준 2020. 7. 25. 02:24반응형
요새 파이썬을 공부하고 있어서 파이썬으로 풀어봤는데 아직 익숙하지 않네요
개인적으로 공부하는 건 비주얼 스튜디오 코드를 쓰는데
코드 창을 열고 닫기가 싫어서 다른 ide로 해보려는데 스파이더, 주피터 둘 다 별로여서
비주얼 스튜디오로 하게 되었네요
문제에 입력값이 많아서 그냥 input()으로 받게 되면 시간 초과가 나고 sys.stdin.readline를 썼어요
그리고 queue구현에서도 pop(0)을 그냥 쓰게 되면 리스트를 다 이동시키는데 시간이 오래 걸려서 변수를 사용해서 지우는 식이 아니라 인덱스를 이동시키는 식으로 구현해봤습니다.
import sys class Queue: def __init__(self): self.mylist = [] self.begin = 0 self.end = 0 def push(self, num): self.mylist.append(num) self.end += 1 def pop(self): if self.end - self.begin == 0: print(-1) return 0 temp = self.mylist[self.begin] self.begin+=1 print(temp) def size(self): print(self.end - self.begin) def empty(self): if self.end - self.begin == 0: print(1) else: print(0) def front(self): if self.end - self.begin == 0: print(-1) else: print(self.mylist[self.begin]) def back(self): if self.end - self.begin == 0: print(-1) else: print(self.mylist[len(self.mylist)-1]) que = Queue() n = int(input()) read = sys.stdin.readline for i in range(n): k = read().split() if k[0] == "push": que.push(int(k[1])) elif k[0] == "pop": que.pop() elif k[0] == "size": que.size() elif k[0] == "empty": que.empty() elif k[0] == "front": que.front() elif k[0] == "back": que.back() else: print("명령어를 확인해주세여ㅛ")
반응형'백준' 카테고리의 다른 글
[백준] 1로 만들기 - 1463 (0) 2020.03.16 부분 합 - 1806 (0) 2020.03.16 집합 - 11723 (0) 2020.03.06