본문 바로가기
백준 알고리즘 코딩

[C언어] 백준 26594번 ZOAC 5

by 1005_ 2025. 4. 22.

[ 문제 ]

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

매번 새로운 방식으로 문자열을 보여주던 성우는 이번 대회에서는 평범하게 앞 글자부터 하나씩 보여주기로 했다. 성우는 문자를 입력하기 위해 키보드로 손을 뻗은 순간, 실수로 마시던 소주를 키보드에 쏟아버리고 말았다... 알코올에 취한 키보드는 어떤 자판을 한 번만 눌러도 N번 누른 것처럼 인식을 하게 되어버렸다!

소중한 키보드를 고치기 위해 고장 접수를 하는 성우는 N을 정확하게 알아야 한다. 눈물이 앞을 가려 모니터를 제대로 볼 수 없는 성우를 위해 대신 N을 구해주도록 하자!

[ 입력 ]

첫째 줄에 성우가 고장 난 키보드로 입력한 문자열이 주어진다.

문자열의 길이는 1000000보다 크지 않고, 빈 문자열은 주어지지 않는다.

성우는 알파벳 대문자만 입력하고, 어떤 알파벳도 두 번 이상 입력하지 않는다.

성우는 독수리 타법이므로 한 번에 하나의 자판만 누를 수 있다.

[ 출력 ]

첫째 줄에 N을 출력한다.

[ 작성한 코드 ]

#include <stdio.h>
#include <string.h>

int main()
{
	char arr[1000000];
	int N = 0,i;

	scanf("%s",arr);
	for(i = 0; i < strlen(arr); i++)
	{
		if(arr[i] == arr[i+1])
		{
			N++;
		}
		else
		{
			break;
		}
	}

	printf("%d",N+1);
}

 

정답을 구하기 위해서는 결국 한 글자가 몇번 반복되는가? 이것을 구하는 문제이니 대문자, 소문자를 구분해야할 필요가 없고, 첫번째 글자가 몇번 반복되는지만 구하면 되는 단순한 문제이다.

 

내가 작성한 조건문대로라면 ZZZ가 입력되었을 때 N은 2가 출력되므로 마지막 printf문에 N+1을 출력하도록 했다.

 

알고리즘 분류

  • 구현
  • 문자열