[ 문제 ]
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을 출력하도록 했다.
알고리즘 분류
- 구현
- 문자열
'백준 알고리즘 코딩' 카테고리의 다른 글
[C언어] 백준 2476 주사위 게임 (0) | 2025.04.22 |
---|---|
[C언어] 백준 2754번 학점계산 (0) | 2025.04.22 |
[C언어] 백준 2566번 최댓값 (0) | 2025.04.19 |
[C언어] 백준 2903번 중앙 이동 알고리즘 (0) | 2025.04.16 |
[C언어] 백준 3986 좋은 단어 (0) | 2025.04.14 |