반응형
[ 문제 ]
2019년 12월, 두 번째로 개최된 ZOAC의 오프닝을 맡은 성우는 누구보다 화려하게 ZOAC를 알리려 한다.
작년 ZOAC의 방식은 너무 식상하다고 생각한 성우는 문자열을 보여주는 새로운 규칙을 고안해냈다!
규칙은 이러하다.
- 그림과 같은 원판에 문자들이 순서대로 적혀있다. 처음 순간에 화살표는 'A'를 가리키고 있다.
- 원판은 왼쪽 또는 오른쪽으로 돌릴 수 있다. 원판을 한 칸 돌리는 데에는 1의 시간이 소요된다.
- 화살표가 가리키고 있는 문자를 출력할 수 있다. 문자를 출력하는 데에 걸리는 시간은 없다.
시간이 너무 오래 걸리면 지루해할 ZOAC의 참가자들을 위해 성우는 해당 문자열을 앞에서부터 차례대로 최대한 빠르게 출력하려고 한다.
바쁜 성우를 위하여 해당 문자열을 출력하는 데 걸리는 시간의 최솟값을 구해보자.
[ 코드 ]
StreamReader sr = new StreamReader(new BufferedStream(Console.OpenStandardInput()));
StreamWriter sw = new StreamWriter(new BufferedStream(Console.OpenStandardOutput()));
string s = sr.ReadLine();
var start = 'A';
int count = 0;
foreach (char c in s)
{
var left = c - start;
var right = start - c;
if(left < 0)
{
left += 26;
}
else if (right < 0)
{
right += 26;
}
count += Math.Min(left, right);
start = c;
}
sw.Write(count);
sw.Close();
sr.Close();
아스키코드를 이용해 푸는 문제. 잘 몰랐었는데 공부가 된 것 같다.
[ 실행화면 ]
문제링크: https://www.acmicpc.net/problem/18238
18238번: ZOAC 2
2019년 12월, 두 번째로 개최된 ZOAC의 오프닝을 맡은 성우는 누구보다 화려하게 ZOAC를 알리려 한다. 작년 ZOAC의 방식은 너무 식상하다고 생각한 성우는 문자열을 보여주는 새로운 규칙을 고안해
www.acmicpc.net
반응형
'Language > C#' 카테고리의 다른 글
[C#] 백준 14471번 포인트 카드 (0) | 2024.03.13 |
---|---|
[C#] 백준 30700번 KOREA 문자열 만들기 (0) | 2024.03.12 |
[C#] 백준 28062번 준석이의 사탕 사기 (0) | 2024.03.11 |
[C#] 백준 22864번 피로도 (0) | 2024.03.11 |
[C#] 백준 11034번 캥거루 세마리2 (0) | 2024.03.11 |