def cnt_up_down(chr):
cnt_from_a = abs(ord('A')-ord(chr))
cnt_from_z = abs(ord('Z')-ord(chr)+1)
return(min(cnt_from_a, cnt_from_z))
def solution(name):
cnt = 0
for i in name:
cnt += cnt_up_down(i)
lst_name = list(name)
len_name = len(lst_name)
if lst_name.count('A') == len_name:
return 0
cur = 0
lst_name[cur] = 'A'
while lst_name.count('A') != len_name:
cnt_left = 0
cnt_right = 0
pos_right, pos_left = cur, cur
for i in range(1, len_name):
cnt_right += 1
pos_right += 1
if pos_right > len_name-1:
pos_right -= len_name
if lst_name[pos_right] != 'A':
break
for j in range(1, len_name):
cnt_left += 1
pos_left -= 1
if pos_left < 0:
pos_left += len_name
if lst_name[pos_left] != 'A':
break
if cnt_right <= cnt_left:
lst_name[pos_right] = 'A'
cnt += cnt_right
cur = pos_right
else:
lst_name[pos_left] = 'A'
cnt += cnt_left
cur = pos_left
return cnt
โท ์ด ๋ฌธ์ ๋ ํฌ๊ฒ ์กฐ์ด์คํฑ์ ์/์๋๋ก ์์ง์ด๋ ๊ฒฝ์ฐ์ ์ข/์ฐ๋ก ์์ง์ด๋ ๊ฒฝ์ฐ๋ก ๋๋์ด ํ์ด์ผ ํ๋ค. ์/์๋๋ก ์์ง์ด๋ ํ์๋ ์ด๋ ํ ๊ฒฝ์ฐ์๋ ๊ฐ๋ค. ๋ฐ๋ผ์ ์ข/์ฐ์ ์ด๋์ ์ค์ฌ์ ์ต์์ ์ด๋ํ์๋ก ๋ง๋๋ ๊ฒ์ด ํต์ฌ์ด๋ค.
โท cnt_up_down ํจ์๋ ๋ฌธ์์ ๋ํ ์/์๋๋ก ์์ง์ฌ์ผ ํ๋ ํ์๋ฅผ ๊ตฌํ๋ ํจ์์ด๋ค.
โท ์ ์ฝ๋์ ๋ ผ๋ฆฌ๋ฅผ ์์ฝํ๋ฉด ๋ค์๊ณผ ๊ฐ๋ค.
1. cnt_up_down ํจ์๋ฅผ ์ด์ฉํ์ฌ ์/์๋๋ก ์์ง์ด๋ ํ์๋ฅผ ๊ตฌํ๋ค.
2. ์ฒซ ๋ฒ์งธ ์์น์ ๋ฌธ์๋ฅผ A๋ก ๋ณ๊ฒฝํ๋ค.
3. ์ฒซ ๋ฒ์งธ ์์น๋ฅผ ํ์ฌ ์์น๋ก ์ ํ ๋ค, ์ผ์ชฝ์ผ๋ก ์ด๋ํ๋ ๊ฒฝ์ฐ์ ์ค๋ฅธ์ชฝ์ผ๋ก ์ด๋ํ๋ ๊ฒฝ์ฐ์ ์ด๋ํ์๋ฅผ ๋น๊ตํ๋ค. ์ด๋ ๋ ์ค ์์ ์ด๋ํ์๋ฅผ ์ ์ฒด ์ด๋ํ์์ ์ถ๊ฐํ๊ณ , ํ์ฌ ์์น๋ฅผ ํด๋น ์ด๋์ ๋ฐ์ํ์ฌ ๋ณ๊ฒฝํ๋ค. ์ด๋ ๋ณ๊ฒฝ๋ ํ์ฌ์์น์ ๋ฌธ์๋ฅผ A๋ก ๋ณ๊ฒฝํ๋ค.
4. name ๋ณ์์ ๋ชจ๋ ๋ฌธ์๊ฐ A๊ฐ ๋ ๋๊น์ง 3๋ฒ ์์ ์ ๋ฐ๋ณตํ๋ค.
'Programming > Coding Test' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Level 2] ํฐ ์ ๋ง๋ค๊ธฐ (0) | 2020.10.27 |
---|---|
[Level 2] ๋ฌธ์์ด ์์ถ (0) | 2020.10.07 |
[Level 2] ๊ตฌ๋ช ๋ณดํธ (0) | 2020.10.06 |
[Level 2] ์ ํ๋ฒํธ ๋ชฉ๋ก (Python) (0) | 2020.10.05 |
[Level 2] H-Index (Python) (0) | 2020.10.05 |