조이스틱 – level 2
2023. 1. 1. 13:05ㆍ코딩 테스트 준비
728x90
반응형
def solution(name):
# 조이스틱 조작 횟수
answer = 0
# 기본 최소 좌우이동 횟수는 길이 - 1
min_move = len(name) - 1
for i, char in enumerate(name):
# 해당 알파벳 변경 최솟값 추가
answer += min(ord(char) - ord('A'), ord('Z') - ord(char) + 1)
# 해당 알파벳 다음부터 연속된 A 문자열 찾기
next = i + 1
while next < len(name) and name[next] == 'A':
next += 1
# 기존, 연속된 A의 왼쪽시작 방식, 연속된 A의 오른쪽시작 방식 비교 및 갱신
min_move = min([min_move, 2 *i + len(name) - next, i + 2 * (len(name) -next)])
# 알파벳 변경(상하이동) 횟수에 좌우이동 횟수 추가
answer += min_move
return answer
[프로그래머스, 파이썬] 조이스틱, Greedy
[프로그래머스, 파이썬] 코딩테스트 고득점 Kit - Greedy, level 2 조이스틱
velog.io
728x90
반응형
'코딩 테스트 준비' 카테고리의 다른 글
구명보트 -level2 (0) | 2023.01.01 |
---|---|
큰 수 만들기 -level2 (0) | 2023.01.01 |
체육복 - level 1 (프로그래머스) (0) | 2023.01.01 |
정수 제곱근 판별 level 1 - 18분 (0) | 2022.10.20 |
신규 아이디 추천 level 1 (정규표현식의 중요성) (0) | 2022.10.10 |