aboutsummaryrefslogtreecommitdiff
path: root/challenge-079/roger-bell-west/python/ch-2.py
diff options
context:
space:
mode:
authorRoger Bell_West <roger@firedrake.org>2020-09-21 15:06:16 +0100
committerRoger Bell_West <roger@firedrake.org>2020-09-21 15:06:16 +0100
commitbec3ea4022d39b97f0c7e3892cf0b46319746883 (patch)
treece8271b9034f992d4478aa3839208fb0104f2a33 /challenge-079/roger-bell-west/python/ch-2.py
parent5ac16ac7e9826137e0da5597e954f4992c66205d (diff)
downloadperlweeklychallenge-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-xchallenge-079/roger-bell-west/python/ch-2.py48
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()