2024. 10. 16. 15:07ㆍIT/BaekJoon
문제 링크
https://www.acmicpc.net/problem/26594
문제
2022년 12월, 다섯 번째로 개최된 ZOAC의 오프닝을 맡은 성우는 누구보다 화려하게 ZOAC를 알리려 한다.
매번 새로운 방식으로 문자열을 보여주던 성우는 이번 대회에서는 평범하게 앞 글자부터 하나씩 보여주기로 했다. 성우는 문자를 입력하기 위해 키보드로 손을 뻗은 순간, 실수로 마시던 소주를 키보드에 쏟아버리고 말았다... 알코올에 취한 키보드는 어떤 자판을 한 번만 눌러도 N번 누른 것처럼 인식을 하게 되어버렸다!
소중한 키보드를 고치기 위해 고장 접수를 하는 성우는 N을 정확하게 알아야 한다. 눈물이 앞을 가려 모니터를 제대로 볼 수 없는 성우를 위해 대신 N을 구해주도록 하자!
입력
첫째 줄에 성우가 고장 난 키보드로 입력한 문자열이 주어진다.
문자열의 길이는 1,000,000보다 크지 않고, 빈 문자열은 주어지지 않는다.
성우는 알파벳 대문자만 입력하고, 어떤 알파벳도 두 번 이상 입력하지 않는다.
성우는 독수리 타법이므로 한 번에 하나의 자판만 누를 수 있다.
출력
첫째 줄에 N을 출력한다.
통과한 답안
namespace _26594
{
internal class Program
{
static void Main(string[] args)
{
string input = Console.ReadLine();
int cnt = 1;
char key = input[0];
for (int i = 1; i < input.Length; i++)
{
if (input[i] == key) cnt++;
else break;
}
Console.WriteLine(cnt);
}
}
}
키를 한 번 누르면 N번 눌리는 키보드로 문자열을 작성한 경우
입력받은 문자열을 확인하여 N을 구하는 문제이다.
입력받은 문자열의 첫 글자를 key로 저장한 뒤에
문자열을 순회하면서 다른 문자가 나타나는데 걸리는 횟수를 찾도록 구현하였다.
이는 조건에서 같은 알파벳을 두 번 이상 입력하지 않는다는 조건으로 이용한 해결 방법이며,
만약 이와 같은 조건이 없다면
각각의 문자가 나타나는 횟수를 저장하고
문자열을 순회하며 횟수가 달라지는 시점을 찾은 후에
두 횟수 중에서 작은 값을 선택하도록 구현하면 될 것으로 생각된다.
'IT > BaekJoon' 카테고리의 다른 글
[BAEKJOON] 백준 20436: ZOAC 3 (C#) (0) | 2024.10.16 |
---|---|
[BAEKJOON] 백준 23971: ZOAC 4 (C#) (0) | 2024.10.16 |
[BAEKJOON] 백준 30045: ZOAC 6 (C#) (1) | 2024.10.16 |
[BAEKJOON] 백준 2852: NBA 농구 (C#) (11) | 2024.10.15 |
[BAEKJOON] 백준 9226: 도깨비말 (C#) (3) | 2024.10.10 |