AvaSmith-CodingSamples / Python / Basic Python Skill Examples / triples.py
triples.py
Raw
#Ava Smith
#smi01868
#CSCI 1133H Section 001
#Assignment 3

#======================
#Purpose: To find the number of unique triples in a list that add up to a target value
#Input Param: num_list -> a list of integers, target -> an integer that is the target value for the sum of the numbers
#Return value: retunrs num_triples an int ranging from 0 to infinity
#=======================
def triples(num_list, target):
    num_triples = 0
    

    num_list.sort()
    for x in range(0, len(num_list)):
        for y in range(0, len(num_list)):
            for z in range(0, len(num_list)):
                if x != z and x != y and z != y:
                    if num_list[x] + num_list[y] + num_list[z] == target:
                        if x < z and z < y:
                            if(num_list[x] <= num_list[y] and num_list[x] <= num_list[z]):
                                if(num_list[y] <= num_list[z]):
                                    print(num_list[x], "+", num_list[y], "+", num_list[z], "=", target)
                                    num_triples +=1
                                else:
                                    print(num_list[x], "+", num_list[z], "+", num_list[y], "=", target)
                                    num_triples += 1
                            elif(num_list[y] <= num_list[x] and num_list[y] <= mum_list[z], "=", target):
                                if(num_list[x] <= num_list[y]):
                                    print(num_list[y], "+", num_list[x], "+", num_list[z], "=", target)
                                    num_triples += 1
                                else:
                                    print(num_list[y], "+", num_list[z], "+", num_list[x], "=", target)
                                    num_triples += 1
                            else:
                                if(num_list[x] <= num_list[y]):
                                    print(num_list[z], "+", num_list[x], "+", num_list[y], "=", target)
                                    num_triples += 1
                                else:
                                    print(num_list[z], "+", num_list[y], "+", num_list[z], "=", target)
                                    num_triples +=1

    
    return num_triples

if __name__ == "__main__":
    print("0", triples([1,2,3,4], 4))
    print("3", triples([6, 5, 0, 1, -4, 4, -1], 10))
    print("0", triples([], 10))
    print("1", triples([2,2,2], 6))