←← →→

C99.hu

Egy gondolkodtató gyakorló feladatokból álló gyűjtemény. Főbb témák a nyelvspecifikus programozás és a matematika.

Főoldal

A házak magassága

Python
Nehézség: Könnyű

Egy város házainak magasságmintáját egy 0-1 mátrix írja le. A feladat az, hogy a házak oszlopmagassága alapján rendezze át az adatot, majd írja ki az eredményt.

housesList = [
[0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,1,0,0,0,0,0,0],
[0,0,0,1,1,0,0,0,0,0,0],
[0,0,1,1,1,0,1,0,0,1,0],
[1,1,1,1,1,0,1,0,1,1,1],
[1,1,1,1,1,1,1,0,1,1,1],
[1,1,1,1,1,1,1,1,1,1,1]
]

def sortHouseList(houses):
lens = 11
lensArr = [0,0,0,0,0,0,0,0,0,0,0]

for y in range(0,len(houses)):
for x in range(0,len(houses[y])):
if houses[y][x] == 1:
lensArr[x] += 1
lensArr.sort(reverse=True)

newArr = []
for rowIdx in range(0,len(houses)):
newRow = []
for colIdx in range(0,lens):
if lensArr[colIdx] > 9-rowIdx-1:
newRow.append(1)
else:
newRow.append(0)

newArr.append(newRow)

return newArr

sorted = sortHouseList(housesList)
for line in sorted:
print(line)


MegoldásA megoldás lényege, hogy minden oszlopban megszámoljuk az 1-eseket, majd ezt csökkenő sorrendbe rendezzük. Ezután az új mátrixban alulról felfelé töltjük ki az oszlopokat a rendezett magasságok szerint.