name return
"JEROEN" 56
"JAN" 23
def solution(name):
# ์กฐ์ด์คํฑ ์กฐ์ ํ์
answer = 0
# ๊ธฐ๋ณธ ์ต์ ์ข์ฐ์ด๋ ํ์ : ๊ธธ์ด - 1
min_move = len(name) - 1
for i, char in enumerate(name): # enumerate() ํจ์: enumerate()๋ ๋ฐ๋ณตํ ๋ ์ธ๋ฑ์ค์ ๊ฐ์ ๋์์ ์ ๊ณตํ๋ ํจ์์
๋๋ค. enumerate(๋ฐ๋ณต_๋์)์ (์ธ๋ฑ์ค, ๊ฐ) ํํ์ ํํ์ ๋ฐํํฉ๋๋ค.
#์์ผ๋ก ์ด๋ํ๋ ๊ฒฝ์ฐ
forward_move = ord(char) - ord('A')
#๋ค๋ก ์ด๋ํ๋ ๊ฒฝ์ฐ
backward_move = ord('Z') - ord(char)+1
# ํด๋น ์ํ๋ฒณ ๋ณ๊ฒฝ ์ต์๊ฐ ์ถ๊ฐ
answer += min( forward_move, backward_move )
# ํด๋น ์ํ๋ฒณ ๋ค์๋ถํฐ ์ฐ์๋ A ๋ฌธ์์ด ์ฐพ๊ธฐ
while next < len(name) and name[next] == 'A':
next += 1
# ๊ธฐ์กด, ์ฐ์๋ A์ ์ผ์ชฝ์์ ๋ฐฉ์, ์ฐ์๋ A์ ์ค๋ฅธ์ชฝ์์ ๋ฐฉ์ ๋น๊ต ๋ฐ ๊ฐฑ์
min_move = min([min_move, 2 *i + len(name) - next, i + 2 * (len(name) -next)])
# ์ํ๋ฒณ ๋ณ๊ฒฝ(์ํ์ด๋) ํ์์ ์ข์ฐ์ด๋ ํ์ ์ถ๊ฐ
answer += min_move
return answer
'์๊ณ ๋ฆฌ์ฆ ๐ก > ํ๋ก๊ทธ๋๋จธ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ํ๋ก๊ทธ๋๋จธ์ค]๊ฒ์ ๋งต ์ต๋จ๊ฑฐ๋ฆฌ.py (BFS) (2) | 2024.10.01 |
---|---|
๊น์ด/๋๋น ์ฐ์ ํ์(DFS/BFS)_ํ๊ฒ ๋๋ฒ.py(ํ์ด์ฌ) (1) | 2024.10.01 |
ํ์๋ฒ(Greedy) ์ฒด์ก๋ณต (1) | 2024.08.31 |
[ํ๋ก๊ทธ๋๋จธ์ค] ์์ ์ฐพ๊ธฐ _ ํ์ด์ฌ (1) | 2024.06.16 |
[ํ๋ก๊ทธ๋๋จธ์ค] ๊ฐ๊ฒฉ์ด ์ ์ผ ๋น์ผ ์ํ์ ์ ๋ณด ์ถ๋ ฅํ๊ธฐ _ ํ์ด์ฌ (0) | 2024.06.16 |