diff options
Diffstat (limited to 'challenge-100/paulo-custodio/python')
| -rw-r--r-- | challenge-100/paulo-custodio/python/ch-1.py | 30 | ||||
| -rw-r--r-- | challenge-100/paulo-custodio/python/ch-2.py | 76 |
2 files changed, 106 insertions, 0 deletions
diff --git a/challenge-100/paulo-custodio/python/ch-1.py b/challenge-100/paulo-custodio/python/ch-1.py new file mode 100644 index 0000000000..7cabc2f1a7 --- /dev/null +++ b/challenge-100/paulo-custodio/python/ch-1.py @@ -0,0 +1,30 @@ +#!/usr/bin/env python + +# Challenge 100 +# +# TASK #1 > Fun Time +# Submitted by: Mohammad S Anwar +# You are given a time (12 hour / 24 hour). +# +# Write a script to convert the given time from 12 hour format to 24 hour format +# and vice versa. +# +# Ideally we expect a one-liner. +# +# Example 1: +# Input: 05:15 pm or 05:15pm +# Output: 17:15 +# Example 2: +# Input: 19:15 +# Output: 07:15 pm or 07:15pm + +import re; +import sys; +import datetime; + +if re.search(r'am|pm', sys.argv[1], re.I): + t = datetime.datetime.strptime(sys.argv[1], "%I:%M%p") + print(t.strftime("%H:%M")) +else: + t = datetime.datetime.strptime(sys.argv[1], "%H:%M") + print(t.strftime("%I:%M%p").lower()) diff --git a/challenge-100/paulo-custodio/python/ch-2.py b/challenge-100/paulo-custodio/python/ch-2.py new file mode 100644 index 0000000000..1f27d99c01 --- /dev/null +++ b/challenge-100/paulo-custodio/python/ch-2.py @@ -0,0 +1,76 @@ +#!/usr/bin/env python + +# Challenge 100 +# +# TASK #2 > Triangle Sum +# Submitted by: Mohammad S Anwar +# You are given triangle array. +# +# Write a script to find the minimum path sum from top to bottom. +# +# When you are on index i on the current row then you may move to either +# index i or index i + 1 on the next row. +# +# Example 1: +# Input: Triangle = [ [1], [2,4], [6,4,9], [5,1,7,2] ] +# Output: 8 +# +# Explanation: The given triangle +# +# 1 +# 2 4 +# 6 4 9 +# 5 1 7 2 +# +# The minimum path sum from top to bottom: 1 + 2 + 4 + 1 = 8 +# +# [1] +# [2] 4 +# 6 [4] 9 +# 5 [1] 7 2 +# Example 2: +# Input: Triangle = [ [3], [3,1], [5,2,3], [4,3,1,3] ] +# Output: 7 +# +# Explanation: The given triangle +# +# 3 +# 3 1 +# 5 2 3 +# 4 3 1 3 +# +# The minimum path sum from top to bottom: 3 + 1 + 2 + 1 = 7 +# +# [3] +# 3 [1] +# 5 [2] 3 +# 4 3 [1] 3 + +import sys; + +triangle = [] + +def add_row(row, items): + triangle.append(items) + +def parse(args): + for i in range(0, len(args)): + items = [int(x) for x in args[i].split(",")] + add_row(i, items) + +def min_sum(): + def min_sum_1(sum, row, col): + sum += triangle[row][col] + if row+1 == len(triangle): + return sum + else: + sum1 = min_sum_1(sum, row+1, col) + sum2 = min_sum_1(sum, row+1, col+1) + return min(sum1, sum2) + return min_sum_1(0, 0, 0) + +parse(sys.argv[1:]) +print(min_sum()) + + + |
