2022년 11월 28일에 작성됨
https://www.acmicpc.net/problem/18238
18238번: ZOAC 2
2019년 12월, 두 번째로 개최된 ZOAC의 오프닝을 맡은 성우는 누구보다 화려하게 ZOAC를 알리려 한다. 작년 ZOAC의 방식은 너무 식상하다고 생각한 성우는 문자열을 보여주는 새로운 규칙을 고안해
www.acmicpc.net
문제 분석
왼쪽으로 도는 경우와 오른쪽으로 도는 경우의 시간을 각각 구해서 둘 중에 더 적은 시간을 적용한다.
소스 코드 (⭕)
word = input()
start = 'A'
sec = 0
for i in word: # i에 word의 한 글자씩 넣어줌
left = ord(start)-ord(i) # 현재 위치에서 다음 위치까지 빼줌
right = ord(i)-ord(start) # 다음 위치에서 현재 위치까지 빼줌
# 빼준 거리가 음수일 때 각각 26(초)을 더해줌
if (left < 0):
left += 26
elif (right < 0):
right += 26
sec += min(left, right) # 둘 중에 더 짧은 시간을 변수 sec에 더해줌
start = i # start는 다시 i로 바뀜
print(sec) # 최단 시간 출력
end
요즘 정신이 없어서 자세한 설명은 주석으로 대체...ㅠ
'코딩테스트 & 문제 풀이' 카테고리의 다른 글
[C]백준_13699 : 점화식 (1) | 2023.11.01 |
---|---|
[C]백준_9625 : BABBA (0) | 2023.11.01 |
[Python]백준_4998 : 저금 (2) | 2023.10.31 |
[Python]백준_2810 : 컵홀더 (0) | 2023.10.31 |
[Python]백준_10825 : 국영수 (0) | 2023.10.31 |
2022년 11월 28일에 작성됨
https://www.acmicpc.net/problem/18238
18238번: ZOAC 2
2019년 12월, 두 번째로 개최된 ZOAC의 오프닝을 맡은 성우는 누구보다 화려하게 ZOAC를 알리려 한다. 작년 ZOAC의 방식은 너무 식상하다고 생각한 성우는 문자열을 보여주는 새로운 규칙을 고안해
www.acmicpc.net
문제 분석
왼쪽으로 도는 경우와 오른쪽으로 도는 경우의 시간을 각각 구해서 둘 중에 더 적은 시간을 적용한다.
소스 코드 (⭕)
word = input()
start = 'A'
sec = 0
for i in word: # i에 word의 한 글자씩 넣어줌
left = ord(start)-ord(i) # 현재 위치에서 다음 위치까지 빼줌
right = ord(i)-ord(start) # 다음 위치에서 현재 위치까지 빼줌
# 빼준 거리가 음수일 때 각각 26(초)을 더해줌
if (left < 0):
left += 26
elif (right < 0):
right += 26
sec += min(left, right) # 둘 중에 더 짧은 시간을 변수 sec에 더해줌
start = i # start는 다시 i로 바뀜
print(sec) # 최단 시간 출력
end
요즘 정신이 없어서 자세한 설명은 주석으로 대체...ㅠ
'코딩테스트 & 문제 풀이' 카테고리의 다른 글
[C]백준_13699 : 점화식 (1) | 2023.11.01 |
---|---|
[C]백준_9625 : BABBA (0) | 2023.11.01 |
[Python]백준_4998 : 저금 (2) | 2023.10.31 |
[Python]백준_2810 : 컵홀더 (0) | 2023.10.31 |
[Python]백준_10825 : 국영수 (0) | 2023.10.31 |