🚩 문제 설명
https://programmers.co.kr/learn/courses/30/lessons/42860
◾ 조이스틱을 이용해서 알파벳을 바꾸고 원하는 문자열로 나타내는 문제
◾ 맨 처음엔 문자가 A로만 이루어져 있다.
◾ A에서 아래 버튼을 누르면 Z로 이동한다.
◾ 첫번째 위치에서 왼쪽으로 이동하면 마지막 문자에 커서가 이동한다.
➕ 제안사항
1. name은 알파벳 대문자로만 이루어져 있습니다.
2. name의 길이는 1 이상 20 이하입니다.
✅ 입출력
name : 만들고자 하는 이름 변수
return ➡️ 조이스틱의 조작횟수를 반환한다.
name | return |
"JEROEN" | 56 |
"JAN" |
23 |
✔️ 예시
◾ 검은색이 커서라고 보면 된다. 커서의 이동도 조작횟수로 쳐야한다.
◾ 위와 같은 과정을 통해서
- 9 + (1 + 4) + (1 + 9) + (1 + 12) + (1 + 4) + (1 + 13)
- 9 + 5 + 10 + 13 + 5 + 14 = 56
- 따라서, 56번의 조작횟수를 반환한다.
📑 문제 풀이
with 파이썬 (Python)
def solution(name):
answer = 0
min_move = len(name) - 1
next = 0
for i, ch in enumerate(name):
answer += min(ord(ch) - ord('A'), ord('Z') - ord(ch) + 1)
next = i + 1
while next < len(name) and name[next] == 'A':
next += 1
min_move = min(min_move, i + i + len(name) - next)
answer += min_move
return answer
728x90
'✏️ 𝗔𝗹𝗴𝗼𝗿𝗶𝘁𝗵𝗺 > 프로그래머스' 카테고리의 다른 글
[PG12901] 2016년 (0) | 2021.11.23 |
---|---|
[PG42888] 오픈채팅방 (0) | 2021.11.21 |
[PG42840] 모의고사 (0) | 2021.11.06 |
[PG64061] 크레인 인형뽑기 게임 (0) | 2021.11.06 |
[PG67256] 키패드 누르기 (0) | 2021.11.06 |