Baekjoon

Baekjoon 2164번 카드2

ppwag 2020. 7. 25. 18:05

문제

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

걸린 시간

00 : 24 : 45

풀이

Python3

class Node():
    def __init__(self, item):
        self.item = item
        self.link = None

class Queue():
    def __init__(self):
        self.front = None
        self.rear = None
        self.search = None

    def is_empty(self):
        return self.front == None

    def enqueue(self, item):
        tmp = Node(item)
        if self.is_empty():
            self.front = tmp    
            self.rear = tmp
        else:
             self.rear.link = tmp
             self.rear = tmp

    def dequeue(self):
        tmp = self.front
        if self.is_empty():
            return -1
        else:
            item = tmp.item
            self.front = tmp.link

            if self.front == None:
                self.rear = None

            return item

    def peek(self):
        if self.is_empty():
            return -1
        else:
             return self.rear.item

if __name__ == "__main__":
    N = int(input())

    q = Queue()

    for i in range(1, N+1):
        q.enqueue(i)

    size = N
    flag = True # True : 버리기, False : 버리고 추가하기
    while size != 1:
        if flag == True:
            q.dequeue()
            flag = False
            size -= 1
        else:    
            q.enqueue(q.dequeue())
            flag = True

    print(q.peek())

'Baekjoon' 카테고리의 다른 글

Baekjoon 1181번 단어 정렬  (0) 2020.07.25
Baekjoon 10814번 나이순 정렬  (0) 2020.07.25
Baekjoon 2609번 최대공약수와 최소공배수  (0) 2020.07.25
Baekjoon 11650번 좌표 정렬하기  (0) 2020.07.24
Baekjoon 1920번 수 찾기  (0) 2020.07.23

댓글