Skip to content

Instantly share code, notes, and snippets.

@austa
Created November 15, 2013 22:39
Show Gist options
  • Select an option

  • Save austa/7492907 to your computer and use it in GitHub Desktop.

Select an option

Save austa/7492907 to your computer and use it in GitHub Desktop.
class Queue:
def __init__(self):
self.liste = []
def isEmpty(self):
return self.liste == []
def enqueue(self, item):
self.liste.insert(0, item)
def dequeue(self):
return self.liste.pop()
def size(self):
return len(self.liste)
def peek(self):
return self.liste[-1]
def mizikcilar_oyunu(gelen_liste, N):
q = Queue()
sayac = 0
mizik_deg = []
counter = 0
#mizik degerlerini bir dizide tutalim
for i in range(len(gelen_liste)):
mizik_deg.append(gelen_liste[i][1])
#tuple'dan olusan listemizi kuyruga ekleyelim
while len(gelen_liste) > sayac:
q.enqueue(gelen_liste[sayac])
sayac += 1
#kuyrukta 1 eleman kalana kadar isleme devam
while q.size() > 1:
for i in range(N):
q.enqueue(q.dequeue()) #ilk tur dondu
son_cocuk = q.peek() #kuyrugun sonunda kalani alalim
mizik_degeri = son_cocuk[1] #bunun miziklik derecesini bir yerde tutalim
if enkucukMu(mizik_deg,mizik_degeri): #miziklik en kucukse sil
q.dequeue()
mizik_deg.remove(mizik_degeri)
else:
toplam = 0
for j in mizik_deg:
toplam += j
ortalama = toplam / len(mizik_deg)
if ortalama == mizik_degeri:
q.dequeue()
mizik_deg.remove(mizik_degeri)
return q.peek()
def enkucukMu(liste, n):
for i in liste:
if n > i:
return False
return True
"""
def enkucuk(liste):
enk = liste[0]
for i in liste:
if i < enk:
enk = i
return enk
"""
mizikcilar = [("ali",1), ("veli",2), ("ayse",1),("suleyman",1),("zehra",2),("ismail",1)]
print mizikcilar_oyunu(mizikcilar, 3)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment