백준 1316번 그룹 단어 체커(C언어)

최정우·2022년 7월 5일
0

백준 문제풀이

목록 보기
17/26


Code

#include <stdio.h>

int main()
{
	char word[101];
	int N;
	scanf_s("%d", &N);
	int count = N;

	for (int i = 0; i < N; i++)
	{
		char first = '0';
		int Alpha[26] = { 0, };
		scanf_s("%s", word, sizeof(word));
		for (int j = 0; word[j] != '\0'; j++)
		{
			if (first != word[j])
			{
				first = word[j];
				Alpha[word[j] - 'a']++;
			}
			if (Alpha[word[j] - 'a'] == 2)
			{
				count -= 1;
				break;
			}
		}
	}



	printf("%d", count);
	return 0;
}

Key Points

  1. 처음 단어의 개수만큼 count변수에 값을 넣어줌(중복되는 알파벳이 나올경우 count--하면 답이 됨)
  2. 알파벳 개수만큼 배열을 만들어준 뒤 입력한 문자열을 하나씩 확인하면서 확인된 알파벳 배열에 순서에 맞게 1씩 더해줌
  3. 결과적으로 이미 나왔던 알파벳이 또 나올경우 배열속에 해당하는 알파벳의 순서자리에 2가 들어감
  4. 알파벳을 한문자씩 확인하며 배열에 2가 들어간 알파벳이 나오면 count--;
profile
WHEN LIFE GIVES YOU LEMONS, MAKE LEMONADE

0개의 댓글