🔑 오늘의 학습 키워드 : 그리디
🔗 문제링크 https://school.programmers.co.kr/learn/courses/30/lessons/42860
def solution(name):
if set(name) == {'A'}:
return 0
a_pos = ord('A') # 'A' : 65, 'Z' : 90
z_pos = ord('Z')
answer = float('inf')
for i in range(len(name)//2 + 1):
l_r = name[-i:] + name[:-i] #왼쪽먼저 갔다가 + 오른쪽
r_l = name[i: :-1] + name[i+1:][::-1] # 기준점에서 빠꾸 + 좌측
for n in [l_r,r_l]:
# 끝에 A들은 셀 필요 없으므로 자르기
while n and n[-1] == 'A':
n = n[:-1]
cnt = [min(ord(c)-a_pos, (z_pos+1) - ord(c)) for c in n ]
answer = min(answer, i + (len(cnt)-1) + sum(cnt))
return answer
✅ 오늘의 회고
- 그리디 문제 풀이
#99클럽 #코딩테스트준비 #개발자취업 #항해99 #TIL
'Coding test' 카테고리의 다른 글
99클럽 코테 스터디 23일차 TIL, leetcode / IPO (0) | 2024.08.13 |
---|---|
99클럽 코테 스터디 22일차 TIL, leetcode / maximal-rectangle (0) | 2024.08.13 |
99클럽 코테 스터디 18일차 TIL, 백준 / 일루미네이션 / 5547 (0) | 2024.08.08 |
99클럽 코테 스터디 17일차 TIL, 백준 / 사자와 토끼 / 17834 (0) | 2024.08.07 |
99클럽 코테 스터디 16일차 TIL, 프로그래머스 / N-Queen (0) | 2024.08.06 |