[TIL_Carrotww] 101 - 23/02/21

์œ ํ˜•์„ยท2023๋…„ 2์›” 21์ผ
0

TIL

๋ชฉ๋ก ๋ณด๊ธฐ
116/138
post-thumbnail

๐Ÿ“Carrotww์˜ ์ฝ”๋”ฉ ๊ธฐ๋ก์žฅ

๐Ÿงฒ Programmers python

๐Ÿ” programmers ์กฐ์ด์Šคํ‹ฑ Level2
์ฒ˜์Œ์— dict๋ฅผ ์•ŒํŒŒ๋ฒณ ๋ณ„๋กœ ๋งŒ๋“ค๊ณ  A์—์„œ ๋นผ์ฃผ์–ด์•ผ ํ–ˆ๋Š”๋ฐ python์—๋Š” ord() ๋‚ด์žฅ ํ•จ์ˆ˜๊ฐ€ ์žˆ๋Š”๊ฑธ ๊นŒ๋จน๊ณ  ์žˆ์—ˆ๋‹ค.

์ด ๋ฌธ์ œ๋Š” A๊ฐ€ ์žˆ์„๋•Œ,
1. ์•ž์œผ๋กœ ์ญ‰ ๊ฐ„๋‹ค
2. ๋ฐฉํ–ฅ์„ ์™ผ์ชฝ(๋’ค๋กœ) ๊ฐ€์„œ CCAAB -> B ๋ถ€๋ถ„์„ ๋จผ์ € ์ฒดํฌํ•˜๊ณ  ์˜จ๋‹ค
3. ์˜ค๋ฅธ์ชฝ์œผ๋กœ ๊ฐ”๋‹ค๊ฐ€ ์™ผ์ชฝ์œผ๋กœ(๋’ค๋กœ) ๊ฐ€์„œ ๋ฐ˜๋Œ€ํŽธ์œผ๋กœ ๊ฐ„๋‹ค CCCAAAAABBBBBB ๊ฐ™์€ ๊ฒฝ์šฐ
์ฆ‰ 3๊ฐ€์ง€ ๊ฒฝ์šฐ๋งŒ ๋– ์˜ฌ๋ฆฌ๋ฉด ์‰ฝ๊ฒŒ ํ’€ ์ˆ˜ ์žˆ๋‹ค.
๊ทผ๋ฐ ๋จธ๋ฆฌ์†์œผ๋กœ ๋– ์˜ฌ๋ฆฌ๋ฉด ์–ด๋ ต๊ณ  ๊ณต์ฑ…์ด๋‚˜ ๋ฉ”๋ชจ์žฅ์— ์จ๊ฐ€๋ฉด์„œ ํ•˜๋ฉด ๋‚˜๋ฆ„ ์‰ฝ๋‹ค.

  • ํ’€์ด
def solution(name):
    cnt = 0
    move = len(name) - 1

    for idx, val in enumerate(name):
        cnt += min(ord(val) - ord('A'), ord('Z') - ord(val) + 1)

        n_idx = idx + 1
        while n_idx < len(name) and name[n_idx] == 'A':
            n_idx += 1

        move = min(move, 2 * idx + len(name) - n_idx, idx + 2 * (len(name) - n_idx))

    return cnt + move

0๊ฐœ์˜ ๋Œ“๊ธ€