알고리즘/백준
[백준] 20436번번 (python 파이썬)
G_Gi
2021. 3. 30. 01:22
SMALL
구현 문제이다.
한글 자음에 해당하는 영어는 왼손으로 누르고
한글 모음에 해당하는 영어는 오른손으로 누른다.
즉 현재 누를 글자의 좌표를 왼손으로 누를지 오른손으로 누를지 정한다.
만약 e이기 때문에 왼손으로 누른다면 e의 해당 좌표를 구하고 이전 글자의 좌표와 거리를 계산한다.
누른 시간 1초 + 거리를 계산하며 결과값을 구해간다.
left, right = input().split()
strings = list(input())
keyboard = ['qwertyuiop', 'asdfghjkl', 'zxcvbnm']
mo = 'yuiophjklbnm'
xl, yl, xr, yr = None, None, None, None
for i in range(len(keyboard)):
if left in keyboard[i]:
xl = i
yl = keyboard[i].index(left)
if right in keyboard[i]:
xr = i
yr = keyboard[i].index(right)
time = 0
for string in strings:
time += 1
if string in mo:
for i in range(len(keyboard)):
if string in keyboard[i]:
nx = i
ny = keyboard[i].index(string)
time += abs(nx - xr) + abs(ny - yr)
xr = nx
yr = ny
break
else:
for i in range(len(keyboard)):
if string in keyboard[i]:
nx = i
ny = keyboard[i].index(string)
time += abs(nx - xl) + abs(ny - yl)
xl = nx
yl = ny
break
print(time)
LIST