Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- with recursive
- 백준 16235
- spring oauth
- 백준 17626
- 백준 16236
- java 기술면접
- 백준 파이썬
- Spring Boot
- MSA
- spring cloud
- JVM
- 백준 16719
- 백준 19238
- 파이썬
- Kotlin
- sql 기술면접
- 프로그래머스
- java
- springboot
- Coroutine
- Spring
- MySQL
- 프로래머스
- re.split
- JPA
- 백준 15685
- 백준
- spring security
- 백준 17779
- 웹어플리케이션 서버
Archives
- Today
- Total
시작이 반
[백준] 20436번번 (python 파이썬) 본문
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
'알고리즘 > 백준' 카테고리의 다른 글
[백준] 2615번번 (python 파이썬) (2) | 2021.03.31 |
---|---|
[백준] 16926번번 (python 파이썬) (0) | 2021.03.30 |
[백준] 20291번번 (python 파이썬) (0) | 2021.03.29 |
[백준] 1244번번 (python 파이썬) (0) | 2021.03.29 |
[백준] 4396번번 (python 파이썬) (0) | 2021.03.29 |