goblin
리니팅
goblin

공지사항

전체 방문자
오늘
어제
  • 분류 전체보기 (75)
    • 개발 (31)
      • Spring (12)
      • JPA (4)
      • JAVA (4)
      • Python (6)
      • Docker (1)
      • Error (3)
      • Spring Cloud로 개발하는 MSA (1)
    • 알고리즘 (32)
    • 자료구조 (3)
    • 컴퓨터 개론 (3)
    • 개인 프로젝트 (4)
      • 쇼핑몰 만들기 (4)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

인기 글

태그

  • 코딩테스트
  • 객체
  • 코딩테스트연습
  • 백준
  • 파이썬
  • 스프링
  • dp
  • Intellij
  • BOJ
  • springboot
  • 다이나믹 프로그래밍
  • 스프링부트
  • 동적계획법
  • 문자열
  • 파워자바
  • 다이나믹프로그래밍
  • 정렬
  • JPA
  • sorting
  • gradle
  • tdd
  • 클래스
  • 조합
  • python
  • inflearn
  • Spring
  • 프로그래머스
  • 구현
  • 알고리즘
  • 자료구조

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
goblin

리니팅

알고리즘

[BOJ/Python3(파이썬)] 백준 18238번: ZOAC 2

2021. 12. 22. 18:25
728x90

https://www.acmicpc.net/problem/18238

 

18238번: ZOAC 2

2019년 12월, 두 번째로 개최된 ZOAC의 오프닝을 맡은 성우는 누구보다 화려하게 ZOAC를 알리려 한다. 작년 ZOAC의 방식은 너무 식상하다고 생각한 성우는 문자열을 보여주는 새로운 규칙을 고안해

www.acmicpc.net

 

문제

2019년 12월, 두 번째로 개최된 ZOAC의 오프닝을 맡은 성우는 누구보다 화려하게 ZOAC를 알리려 한다.

작년 ZOAC의 방식은 너무 식상하다고 생각한 성우는 문자열을 보여주는 새로운 규칙을 고안해냈다!

규칙은 이러하다.

그림과 같은 원판에 문자들이 순서대로 적혀있다. 처음 순간에 화살표는 'A'를 가리키고 있다.
원판은 왼쪽 또는 오른쪽으로 돌릴 수 있다. 원판을 한 칸 돌리는 데에는 1의 시간이 소요된다.
화살표가 가리키고 있는 문자를 출력할 수 있다. 문자를 출력하는 데에 걸리는 시간은 없다.
시간이 너무 오래 걸리면 지루해할 ZOAC의 참가자들을 위해 성우는 해당 문자열을 앞에서부터 차례대로 최대한 빠르게 출력하려고 한다.

바쁜 성우를 위하여 해당 문자열을 출력하는 데 걸리는 시간의 최솟값을 구해보자.

 

✔ 풀이

data = list(input())

start='A'
time=0

for i in data:
    left=ord(i) - ord(start)
    right = ord(start) - ord(i)

    if left<0:
        left+=26
    elif right <0:
        right+=26

    time+=min(left,right)
    start=i

print(time)

 

왼쪽으로 도는 경우와 오른쪽으로 도는 경우 중 더 짧은 쪽을 선택하면 된다.
값이 음수인 경우만 주의하면 되고 아스키 코드 변환 함수인 ord()를 사용해 쉽게 풀 수 있었다.

728x90
반응형

'알고리즘' 카테고리의 다른 글

[BOJ/Python3(파이썬)] 백준 2805번: 나무 자르기  (0) 2021.12.22
[BOJ/Python3(파이썬)] 백준 2798번: 블랙잭  (0) 2021.12.22
[BOJ/Python3(파이썬)] 백준 11399번: ATM  (0) 2021.12.22
[BOJ/Python3(파이썬)] 백준 2217번: 로프  (0) 2021.12.22
[BOJ/Python3(파이썬)] 백준 2839번: 설탕 배달  (0) 2021.12.22
    '알고리즘' 카테고리의 다른 글
    • [BOJ/Python3(파이썬)] 백준 2805번: 나무 자르기
    • [BOJ/Python3(파이썬)] 백준 2798번: 블랙잭
    • [BOJ/Python3(파이썬)] 백준 11399번: ATM
    • [BOJ/Python3(파이썬)] 백준 2217번: 로프
    goblin
    goblin

    티스토리툴바