finish extra/dont-get-volunteered

Submitting solution...
Submission: SUCCESSFUL. Completed in: 2 hrs, 56 mins, 6 secs.
This commit is contained in:
Seongbeom Park 2022-05-10 01:40:24 +09:00
parent 7ff98387b8
commit 3bbc57e4ae
2 changed files with 49 additions and 0 deletions

View File

@ -99,3 +99,6 @@ CFcSBwgCCBoHRhkKU1cGAA4AGU5YQR5THBwNFwoGGAxTQQMQVBUSBg4EAAwQRhUQVBUHFAQTGRpT QQM
### gearing-up-for-destruction
* Completed in: 1 hr, 19 mins, 28 secs.
### dont-get-volunteered
* Completed in: 2 hrs, 56 mins, 6 secs.

View 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)