반응형
문제를 분석해보면, 아래와 같은 흐름으로 석판 간 이동을 해야 한다:
첫 위치 -> I -> L -> O -> V -> E -> Y -> O -> N -> S -> E -> I
위 구간을 2가지로 쪼갤 수 있다
- 첫 위치 -> I 구간
- 거리가 입력에 따라 값이 달라진다.
- 입력이 'A'였다면, A -> I 이동 거리인 8.
- I -> L -> O -> V -> E -> Y -> O -> N -> S -> E -> I 구간
- 입력에 상관없이 언제나 반드시 이동해야 하는 거리가 정해져있다. 그 값은 84.
파이썬에서 문자의 아스키 코드값을 반환해주는 ord() 함수를 사용하면 문자간 차이를 쉽게 구할 수 있다.
(정답 코드)
def get_distance(x, y):
return abs(ord(x) - ord(y))
s = input("").upper()
d = get_distance(s, "I")
p = "ILOVEYONSEI"
for i, c in enumerate(p[:-1]):
d += get_distance(p[i], p[i + 1])
print(d)
https://www.acmicpc.net/problem/25915
반응형
'baekjoon' 카테고리의 다른 글
[BOJ] 1620번: 나는야 포켓몬 마스터 이다솜 / Python (1) | 2024.12.15 |
---|---|
[BOJ] 10814번: 나이순 정렬 / Python (0) | 2024.12.11 |
[BOJ] 9226번: 도깨비말 / Python (1) | 2024.12.08 |
[BOJ] 1284번: 집 주소 / TypeScript (0) | 2023.11.29 |
[BOJ] 14918번: 더하기 / TypeScript (0) | 2023.11.28 |