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 | 31 |
Tags
- springboot
- 파이썬
- 백준 17779
- spring security
- java 기술면접
- MySQL
- 백준 15685
- Spring
- with recursive
- 프로그래머스
- Spring Boot
- 백준 19238
- 백준 16236
- 프로래머스
- spring oauth
- 백준 17626
- 백준
- java
- re.split
- Kotlin
- Coroutine
- sql 기술면접
- 웹어플리케이션 서버
- 백준 16235
- 백준 16719
- spring cloud
- MSA
- JVM
- 백준 파이썬
- JPA
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 |