ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [백준] 큐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

    댓글

Designed by Tistory.