문제
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 |
댓글