finish extra/dont-get-volunteered
Submitting solution... Submission: SUCCESSFUL. Completed in: 2 hrs, 56 mins, 6 secs.
This commit is contained in:
parent
7ff98387b8
commit
3bbc57e4ae
@ -99,3 +99,6 @@ CFcSBwgCCBoHRhkKU1cGAA4AGU5YQR5THBwNFwoGGAxTQQMQVBUSBg4EAAwQRhUQVBUHFAQTGRpT QQM
|
|||||||
|
|
||||||
### gearing-up-for-destruction
|
### gearing-up-for-destruction
|
||||||
* Completed in: 1 hr, 19 mins, 28 secs.
|
* Completed in: 1 hr, 19 mins, 28 secs.
|
||||||
|
|
||||||
|
### dont-get-volunteered
|
||||||
|
* Completed in: 2 hrs, 56 mins, 6 secs.
|
||||||
|
|||||||
46
extra/dont-get-volunteered/solution.py
Normal file
46
extra/dont-get-volunteered/solution.py
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
def solution(src, dest):
|
||||||
|
unvisited = [i for i in range(64)]
|
||||||
|
curr_stage = set([src])
|
||||||
|
moves = 0
|
||||||
|
while dest not in curr_stage:
|
||||||
|
next_stage = set()
|
||||||
|
for curr in curr_stage:
|
||||||
|
next_stage.update(possible_next_position(curr))
|
||||||
|
moves += 1
|
||||||
|
curr_stage = next_stage
|
||||||
|
return moves
|
||||||
|
|
||||||
|
def possible_next_position(curr):
|
||||||
|
result = []
|
||||||
|
if curr % 8 >= 1:
|
||||||
|
if curr / 8 >= 2:
|
||||||
|
result += [curr-17]
|
||||||
|
if curr / 8 <= 5:
|
||||||
|
result += [curr+15]
|
||||||
|
if curr % 8 >= 2:
|
||||||
|
if curr / 8 >= 1:
|
||||||
|
result += [curr-10]
|
||||||
|
if curr / 8 <= 6:
|
||||||
|
result += [curr+6]
|
||||||
|
if curr % 8 <= 5:
|
||||||
|
if curr / 8 >= 1:
|
||||||
|
result += [curr-6]
|
||||||
|
if curr / 8 <= 6:
|
||||||
|
result += [curr+10]
|
||||||
|
if curr % 8 <= 6:
|
||||||
|
if curr / 8 >= 2:
|
||||||
|
result += [curr-15]
|
||||||
|
if curr / 8 <= 5:
|
||||||
|
result += [curr+17]
|
||||||
|
return set(result)
|
||||||
|
|
||||||
|
|
||||||
|
tests = [
|
||||||
|
([0, 1], 3),
|
||||||
|
([19, 36], 1),
|
||||||
|
([0, 0], 0),
|
||||||
|
]
|
||||||
|
|
||||||
|
for i, o in tests:
|
||||||
|
result = solution(*i)
|
||||||
|
print(i, result == o, result, o)
|
||||||
Loading…
x
Reference in New Issue
Block a user