diff options
| author | Roger Bell_West <roger@firedrake.org> | 2020-09-21 15:06:16 +0100 |
|---|---|---|
| committer | Roger Bell_West <roger@firedrake.org> | 2020-09-21 15:06:16 +0100 |
| commit | bec3ea4022d39b97f0c7e3892cf0b46319746883 (patch) | |
| tree | ce8271b9034f992d4478aa3839208fb0104f2a33 /challenge-079/roger-bell-west/python/ch-2.py | |
| parent | 5ac16ac7e9826137e0da5597e954f4992c66205d (diff) | |
| download | perlweeklychallenge-club-bec3ea4022d39b97f0c7e3892cf0b46319746883.tar.gz perlweeklychallenge-club-bec3ea4022d39b97f0c7e3892cf0b46319746883.tar.bz2 perlweeklychallenge-club-bec3ea4022d39b97f0c7e3892cf0b46319746883.zip | |
Answers to challenge #79.
Diffstat (limited to 'challenge-079/roger-bell-west/python/ch-2.py')
| -rwxr-xr-x | challenge-079/roger-bell-west/python/ch-2.py | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/challenge-079/roger-bell-west/python/ch-2.py b/challenge-079/roger-bell-west/python/ch-2.py new file mode 100755 index 0000000000..04f30f729d --- /dev/null +++ b/challenge-079/roger-bell-west/python/ch-2.py @@ -0,0 +1,48 @@ +#! /usr/bin/python + +import unittest + +from math import log10 + +def capacity(n): + cap=0 + for r in range(min(n),max(n)+1): + b=[i for i in range(0,len(n)) if n[i] >= r] + if(len(b)>1): + for i in range(0,len(b)-1): + cap += b[i+1]-b[i]-1 + return cap + +def histo(n): + mx=max(n) + cw=int(log10(mx+1)+.9999); + for r in reversed(range(1,mx+1)): + row=list() + row.append(format(r,str(cw))) + for i in range(0,len(n)): + s = ' ' + if(n[i] >= r): + s = '#' + s *= cw + row.append(s) + print(' '.join(row)) + s='-' * cw; + print(' '.join([s for i in range(0,len(n)+1)])) + row=list() + row.append(' ' * cw) + for i in n: + row.append(format(i,str(cw))) + print(' '.join(row)) + +histo((2,1,4,1,2,5)); +histo((3,1,3,1,1,5)); + +class TestCapacity(unittest.TestCase): + + def test_ex1(self): + self.assertEqual(capacity((2,1,4,1,2,5)),6,'example 1') + + def test_ex2(self): + self.assertEqual(capacity((3,1,3,1,1,5)),6,'example 2') + +unittest.main() |
