백준 20436 : ZOAC 3

2021. 10. 5. 18:12문제풀기/백준

https://www.acmicpc.net/problem/20436

 

20436번: ZOAC 3

첫 번째 줄에는 두 알파벳 소문자 sL, sR이 주어진다. sL, sR은 각각 왼손 검지손가락, 오른손 검지손가락의 처음 위치이다. 그 다음 줄에는 알파벳 소문자로 구성된 문자열이 주어진다. 문자열의

www.acmicpc.net

매번 느끼는거지만 문제를 잘 읽자...

오른손은 한글의 모음 부분만, 왼손은 한글의 자음 부분만 가능하다는 조건을 빼놓아서 괜히 어렵게 풀었다.

그냥 단순하게 구현만 하면 되는 문제

 

import sys
input = sys.stdin.readline

l,r = input().rstrip().split()

want_str = list(input().rstrip())

keyboard_list = ['qwertyuiop','asdfghjkl','zxcvbnm']
keyboard = dict()

for y in range(3):
    for x in range(len(keyboard_list[y])):
        keyboard[keyboard_list[y][x]] = (y,x)

ly,lx = keyboard[l]
ry,rx = keyboard[r]

result = 0

l_str = "qwertasdfgzxcv"

for s in want_str:
    sy,sx = keyboard[s]

    if s in l_str:
        result += 1 + abs(sy-ly) + abs(sx-lx)
        ly,lx = sy,sx
    else:
        result += 1 + abs(sy-ry) + abs(sx-rx)
        ry,rx = sy,sx

print(result)