MBrendecke icon

Challenge 8 - Python

MBrendecke | PRO | 09/22/18 08:49:36 PM UTC | 0 ⭐ | 410 👁️ | Never ⏰ | []
Python |

1.35 KB

|

None

|

0 👍

/

0 👎

from json import dumps
from time import perf_counter
 
from Session import Session  # https://pastebin.com/XbikUKu2
 
 
def solve(nums: [], target: int):
    diffs = dict()
 
    for idx_i, i in enumerate(nums):
        for idx_j, j in enumerate(nums):
            sum = i + j
 
            if sum not in diffs:
                diffs[sum] = [idx_i, idx_j]
 
            if (target - sum) in diffs:
                return sorted([idx_i, idx_j] + diffs[target - sum])
 
    return [-1, -1, -1, -1]
 
 
def challenge8():
    session = Session(8)
    json_obj = session.get().json()
    k = json_obj['k']
    nums = json_obj['list']
 
    t = perf_counter()
    ret = solve(nums, k)
    elapsed = perf_counter() - t
 
    param = dumps({"token": ret})
    response = session.post(data=param)
 
    if not response.text.startswith("Success"):
        print(response)
        print(k)
        print(nums)
        print(ret)
        raise ValueError("Inkorrekte Lösung")
 
    print(f'{response.text:10}: {ret}')
    print(f'Dictionary: {elapsed * 1000:06.5f} ms')
    return elapsed
 
 
if __name__ == '__main__':
    try:
        count = 100
        sum = 0
        times = 0
        for n in range(count):
            sum += challenge8()
            times += 1
    finally:
        print(f'Durchschnittlich: {(sum / times) * 1000:06.5f} ms')

Comments