mirror of
https://github.com/KevinMidboe/knowit_julekalender-2018.git
synced 2025-10-29 09:40:18 +00:00
Vekked the sort of vekk sort
This commit is contained in:
27
luke_01/README.md
Normal file
27
luke_01/README.md
Normal file
@@ -0,0 +1,27 @@
|
||||
## Vekksort
|
||||
|
||||
Vi definerer Vekksort (O(n)) til å være den lineære sorteringsalgoritmen som:
|
||||
|
||||
Traverserer en liste fra første element.
|
||||
Eliminerer hvert element som er mindre enn det forrige.
|
||||
Inndata er en tekstfil med ett positivt heltall per linje.
|
||||
|
||||
Oppgaven er å finne summen til tallene i en liste sortert ved "hjelp" av Vekksort.
|
||||
|
||||
Eksempel input:
|
||||
|
||||
5
|
||||
4
|
||||
3
|
||||
6
|
||||
7
|
||||
5
|
||||
2
|
||||
7
|
||||
5
|
||||
1
|
||||
1
|
||||
10
|
||||
Eksempel output: 35 (fordi 5 + 6 + 7 + 7 + 10 = 35)
|
||||
|
||||
Innputfila finner du [her](./input-vekksort.txt).
|
||||
1000000
luke_01/input-vekksort.txt
Normal file
1000000
luke_01/input-vekksort.txt
Normal file
File diff suppressed because it is too large
Load Diff
23
luke_01/vekksorrt.py
Executable file
23
luke_01/vekksorrt.py
Executable file
@@ -0,0 +1,23 @@
|
||||
#!/usr/bin/env python3
|
||||
|
||||
def fileContents(path='./input-vekksort.txt'):
|
||||
import os
|
||||
path = os.path.join(os.path.dirname(__file__), path)
|
||||
with open(path, 'r') as f:
|
||||
return f.read().split('\n')[:-1]
|
||||
|
||||
def vekk(numbers):
|
||||
vekked = []
|
||||
lastLarger = lambda curr, prev: int(curr) >= int(prev)
|
||||
|
||||
for i, num in enumerate(numbers):
|
||||
if (i == 0 or lastLarger(num, vekked[-1])):
|
||||
vekked.append(int(num))
|
||||
|
||||
return sum(vekked)
|
||||
|
||||
def main():
|
||||
return vekk(fileContents())
|
||||
|
||||
if __name__ == '__main__':
|
||||
print(main())
|
||||
@@ -1,2 +1,4 @@
|
||||
from luke_01.vekksorrt import main as vekksort
|
||||
|
||||
def test_answer():
|
||||
assert False
|
||||
assert vekksort() == 12920419
|
||||
|
||||
Reference in New Issue
Block a user