본문 바로가기
백준/단계별

백준 1316 C#) 그룹 단어 체커

by alpacadabra 2022. 4. 27.

문제는 간단하다. 같은 알파벳은 반드시 붙어있어야 한다는 것이다.

 

int n = int.Parse(Console.ReadLine());
int cnt = 0;
string s;

while (n-- > 0)
{
    s = Console.ReadLine();
    cnt++;
    
    for (int i = 0; i < s.Length - 1; i++)
    {
        if (s.IndexOf(s[i], i + 1) - i > 1)
        {
            cnt--;
            break;
        }
    }
}

Console.Write(cnt);

 

내 아이디어는 이러하다.

문자열 "aaabbaa"에서 a를 검사한다고 치자. 그럼 현재 a와 제일 가까운 다음 a의 인덱스 차이를 구할 수 있을 것이다.

이때 그 차이가 1이라면 a는 서로 붙어 있다는 뜻이 되지만 1보다 크다면 그렇지 않다는 뜻이므로 그룹 단어의 조건에 위배된다. 이를 검사하면 된다.

1보다 작은건 괜찮다. 이는 다음 a를 찾지 못했다는 뜻이므로 조건에 위배되지 않는다.

 

IndexOf 메소드를 사용하여 이를 간단히 구현할 수 있었다.

'백준 > 단계별' 카테고리의 다른 글

백준 2869 C#) 달팽이는 올라가고 싶다  (0) 2022.05.04
백준 2292 C#) 벌집  (0) 2022.04.27
백준 2941 C#) 크로아티아 알파벳  (0) 2022.04.27
백준 1152 C#) 단어의 개수  (0) 2022.04.22
백준 1157 C#) 단어 공부  (0) 2022.04.22

댓글