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 |
Tags
- 알고리즘
- C++
- redux-toolkit
- redux-saga
- Get
- maeil-mail
- java
- createSlice
- 항해99
- json-server
- Python
- 매일메일
- 리액트
- 코딩테스트합격자되기
- useDispatch
- react-router
- react
- 자바
- 프로그래머스
- 항해플러스
- axios
- redux
- SW
- 테코테코
- 이코테
- programmers
- react-redux
- sw expert academy
- Algorithm
- JavaScript
Archives
- Today
- Total
Binary Journey
[프로그래머스] 조이스틱 본문
반응형
출처: 프로그래머스 코딩 테스트 연습, https://programmers.co.kr/learn/challenges
def solution(name):
answer = 0
length = len(name)
index = 0
move = length - 1
for i, n in enumerate(name):
answer += min(ord(n) - ord('A'), ord('Z') - ord(n) + 1);
index = i + 1
while index < length and ord(name[index]) == ord('A'):
index += 1
move = min(move, i * 2 + length - index)
move = min(move, (length - index) * 2 + i)
return answer + move
def solution(name):
if set(name) == {'A'}:
return 0
answer = float('inf')
for i in range(len(name) // 2):
left_moved = name[-i:]+name[:-i]
print(left_moved)
right_moved = name[i:]+name[:i]
print(right_moved)
print([left_moved, right_moved[0]+right_moved[:0:-1]])
for n in [left_moved, right_moved[0]+right_moved[:0:-1]]:
while n and n[-1] == 'A':
n = n[:-1]
row_move = i + len(n)-1
col_move = 0
for c in map(ord, n):
col_move += min(c - 65, 91 - c)
answer = min(answer, row_move + col_move)
return answer
반응형
'프로그래머스 > level 2' 카테고리의 다른 글
[프로그래머스] 위장 (0) | 2022.04.20 |
---|---|
[프로그래머스] 더 맵게 (0) | 2022.04.20 |
[프로그래머스] 가장 큰 수 (0) | 2022.03.10 |
[프로그래머스] 교점에 별 만들기 (0) | 2022.03.03 |
[프로그래머스] 캐시 (0) | 2022.03.03 |