aboutsummaryrefslogtreecommitdiff
path: root/challenge-219/eric-cheung/python/ch-2.py
blob: e4c1d297247c1f2743ae3d84cb1532b737c453d5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
## Example 1
## arrCost = [2, 7, 25]
## arrDays = [1, 5, 6, 7, 9, 15]

## Example 2
arrCost = [2, 7, 25]
arrDays = [1, 2, 3, 5, 7, 10, 11, 12, 14, 20, 30, 31]

## Trial 1
nCost = arrCost[2]

## Trial 2
nCost = min(nCost, arrCost[0] * len(arrDays))

## Trial 3
nLoop = 0
nWeekCount = 0
while nLoop < len(arrDays):
    nLoopDay = arrDays[nLoop] + 6

    ## print ("nLoop: " + str(nLoop))
    ## print ("nLoopDay: " + str(nLoopDay))

    arrSubDay = [nIndx for nIndx, nElem in enumerate(arrDays) if nElem >= nLoopDay]

    if arrSubDay == []:
        nWeekCount = nWeekCount + 1
        break

    nFindIndx = min(arrSubDay)
    nShiftIndx = (1 if arrDays[nFindIndx] == nLoopDay else 0)
    nLoop = nShiftIndx + nFindIndx
    nWeekCount = nWeekCount + 1

    ## print ("nWeekCount: " + str(nWeekCount))
    ## print ("")


## print (nWeekCount)
nCost = min(nCost, arrCost[1] * nWeekCount)

## Trial 4
nLoop = 1
nIndx = 0
while nLoop < nWeekCount:
    nLoopDay = arrDays[nIndx] + 6
    arrSubDay = [nIndx for nIndx, nElem in enumerate(arrDays) if nElem >= nLoopDay]

    if arrSubDay == []:
        break

    nFindIndx = min(arrSubDay)
    nShiftIndx = (1 if arrDays[nFindIndx] == nLoopDay else 0)
    nIndx = nShiftIndx + nFindIndx
    nRemain = len(arrSubDay) - nShiftIndx
    nCost = min(nCost, arrCost[1] * nLoop + arrCost[0] * nRemain)
    nLoop = nLoop + 1

print (nCost)