코딩테스트 조이스틱 문제풀이

프로그래머스 조이스틱(level 2) 문제풀이

#조이스틱 위, 아래 움직여서 변환하는 횟수
def updown(data):
  result = 0
  for i in data:
    result += min(ord("Z")-ord(i)+1, ord(i)-ord("A"))
  return result

#전체 횟수구하기
def solution(data):
  answer = updown(data)
  print("단어변경", answer)
  data = list(data)
  data[0] = "A"
  if "".join(data) == 'A'*len(data):
    return answer
  tmp = 987654321
  for i in range(len(data)-1):
    t_data = data[:]
    t_data[i] = 'A'
    cnt = 1
    while(True):
      print(i," ",cnt," ",t_data)
      k = i-cnt
      if t_data[k] != 'A':
        t_data[k] = 'A'
      if "".join(t_data) == 'A'*len(t_data):
        tmp = min(tmp, cnt+i)
        print("tmp", tmp)
        break
      cnt += 1  
  return answer+tmp

며칠동안 고생하다가 날 잡고 풀었음
각 자리마다 왼쪽으로 커서 옮기는 모든 경우들 중 가장 작은 횟수 구했음
풀고나서 질문하기나 맞은풀이 댓글들 보는데 문제가 정상은 아닌 거 같음
아무튼 생각도 하기 싫음

좋은 웹페이지 즐겨찾기