2.6 KiB
id, title, challengeType, dashedName
| id | title | challengeType | dashedName |
|---|---|---|---|
| 697a49e6ff50d756c9b69365 | Challenge 188: 2026 Winter Games Day 9: Skeleton | 29 | challenge-188 |
--description--
Given a string representing the curves on a skeleton track, determine the difficulty of the track.
-
The given string will only consist of the letters:
"L"for a left turn"R"for a right turn"S"for a straight segment
-
Each direction change adds 15 points (an
"L"followed by an"R"or vice versa). -
All other curves add 5 points each (all other
"L"or"R"characters). -
Straight segments add 0 points.
The difficulty of the track is based on the total score. Return:
"Easy"if the total is 0 - 100"Medium"if the total is 101-200"Hard"if the total is over 200
--hints--
get_difficulty("SLSLLSRRLSRLRL") should return "Easy".
({test: () => { runPython(`
from unittest import TestCase
TestCase().assertEqual(get_difficulty("SLSLLSRRLSRLRL"), "Easy")`)
}})
get_difficulty("LLRSLRLRSLLRLRSLRRLRSRLLS") should return "Hard".
({test: () => { runPython(`
from unittest import TestCase
TestCase().assertEqual(get_difficulty("LLRSLRLRSLLRLRSLRRLRSRLLS"), "Hard")`)
}})
get_difficulty("SRRRRLSLLRLRSSRLSRL") should return "Medium".
({test: () => { runPython(`
from unittest import TestCase
TestCase().assertEqual(get_difficulty("SRRRRLSLLRLRSSRLSRL"), "Medium")`)
}})
get_difficulty("LSRLRLSRLRLSLRSLRLLRLSRLRLRSL") should return "Hard".
({test: () => { runPython(`
from unittest import TestCase
TestCase().assertEqual(get_difficulty("LSRLRLSRLRLSLRSLRLLRLSRLRLRSL"), "Hard")`)
}})
get_difficulty("SLLSSLRLSLSLRSLSSLRL") should return "Medium".
({test: () => { runPython(`
from unittest import TestCase
TestCase().assertEqual(get_difficulty("SLLSSLRLSLSLRSLSSLRL"), "Medium")`)
}})
get_difficulty("SRSLSRSLSRRSLSRSRSLSRLSRSR") should return "Easy".
({test: () => { runPython(`
from unittest import TestCase
TestCase().assertEqual(get_difficulty("SRSLSRSLSRRSLSRSRSLSRLSRSR"), "Easy")`)
}})
--seed--
--seed-contents--
def get_difficulty(track):
return track
--solutions--
def get_difficulty(track):
score = 0
for i in range(len(track)):
current = track[i]
previous = track[i - 1] if i > 0 else None
if current == 'S':
score += 0
elif current == 'L' or current == 'R':
if previous and previous != 'S' and previous != current:
score += 15
else:
score += 5
if score <= 100:
return 'Easy'
elif score <= 200:
return 'Medium'
else:
return 'Hard'