treffen:problemsolving:001_ps

CC BY-SA 3.0 by David Lazich

001: Rummy Numbers

Serie treffen:problemsolving
Von nopx
Datum 29.April 2021
Download Aufgabenbeschreibung [pdf]
Schwierigkeit

Mein Lösung. Spoiler Alert! [pdf]

import sys
import numpy as np
 
def solve():
    n = np.array(sys.argv[1:], dtype=int)
    assert(len(n) == 13)
 
    for i in range(13):
        minl = min(n[(i-1) % 13], n[(i-2) % 13])
        minr = min(n[(i+1) % 13], n[(i+2) % 13])
        if n[i % 13] - minl - minr > min(n[(i-1) % 13]-minl, n[(i+1) % 13]-minr):
            return 1
 
    return 0
nopx, 2021/04/30 19:19

Ich denke, ich habe eine ganz gute Lösung gefunden. Wenn wir die Anzahl an möglichen Karten als Parameter k annehmen (k=13) dann hab ich eine Laufzeit in O(k). Für große k auch einfach zu parallelisieren. Aufgeschrieben ist auch schon. Hochgeladen wird wann anders. Ich will ja nicht spoilern.

Wie siehts bei euch aus?

nopx, 2021/05/01 10:02

Vermutlich doch eher Schwierigkeit 2/5. :)

Melde dich an um einen Kommentar zu erstellen.
  • treffen/problemsolving/001_ps.txt
  • Zuletzt geändert: 2021/05/21 09:34
  • von max