diff options
| author | drbaggy <js5@sanger.ac.uk> | 2021-12-07 00:04:16 +0000 |
|---|---|---|
| committer | drbaggy <js5@sanger.ac.uk> | 2021-12-07 00:04:16 +0000 |
| commit | 913c79f9179e9dc662d64dac73cc7c41e3b84ca7 (patch) | |
| tree | 02f08e092ab0343a644fa2a13a4e800d8b281f69 /challenge-080/paulo-custodio/python/ch-2.py | |
| parent | 35e89da28fa5acf448dde4127c093031888e2fde (diff) | |
| parent | 54620721cb174feca58d62f153c204d26b0297f7 (diff) | |
| download | perlweeklychallenge-club-913c79f9179e9dc662d64dac73cc7c41e3b84ca7.tar.gz perlweeklychallenge-club-913c79f9179e9dc662d64dac73cc7c41e3b84ca7.tar.bz2 perlweeklychallenge-club-913c79f9179e9dc662d64dac73cc7c41e3b84ca7.zip | |
git isn't good at handling merges - worse than SVN by a long way
Diffstat (limited to 'challenge-080/paulo-custodio/python/ch-2.py')
| -rw-r--r-- | challenge-080/paulo-custodio/python/ch-2.py | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/challenge-080/paulo-custodio/python/ch-2.py b/challenge-080/paulo-custodio/python/ch-2.py new file mode 100644 index 0000000000..f877f5aa47 --- /dev/null +++ b/challenge-080/paulo-custodio/python/ch-2.py @@ -0,0 +1,52 @@ +#!/usr/bin/python3 + +# Challenge 080 +# +# TASK #2 > Count Candies +# Submitted by: Mohammad S Anwar +# You are given rankings of @N candidates. +# +# Write a script to find out the total candies needed for all candidates. +# You are asked to follow the rules below: +# +# a) You must given at least one candy to each candidate. +# b) Candidate with higher ranking get more candies than their mmediate +# neighbors on either side. +# Example 1: +# Input: @N = (1, 2, 2) +# Explanation: +# Applying rule #a, each candidate will get one candy. So total candies needed +# so far 3. Now applying rule #b, the first candidate do not get any more candy +# as its rank is lower than it's neighbours. The second candidate gets one more +# candy as it's ranking is higher than it's neighbour. Finally the third +# candidate do not get any extra candy as it's ranking is not higher than +# neighbour. Therefore total candies required is 4. +# +# Output: 4 +# Example 2: +# Input: @N = (1, 4, 3, 2) +# Explanation: +# Applying rule #a, each candidate will get one candy. So total candies needed +# so far 4. Now applying rule #b, the first candidate do not get any more candy +# as its rank is lower than it's neighbours. The second candidate gets two more +# candies as it's ranking is higher than it's both neighbour. The third +# candidate gets one more candy as it's ranking is higher than it's neighbour. +# Finally the fourth candidate do not get any extra candy as it's ranking is +# not higher than neighbour. Therefore total candies required is 7. +# +# Output: 7 + +import sys + +def candies(n): + candy = [1 for x in n] + for i in range(len(n)): + if i>0: + if n[i]>n[i-1]: + candy[i] += 1 + if i<len(n)-1: + if n[i]>n[i+1]: + candy[i] += 1 + return candy + +print(sum(candies([int(x) for x in sys.argv[1:]]))) |
