728x90
반응형
[백준] C++ & C# 그룹 단어 체커 (1316번) 실버 5
📝 문제
그룹 단어란 단어에 존재하는 모든 문자에 대해서, 각 문자가 연속해서 나타나는 경우만을 말한다. 예를 들어, ccazzzzbb는 그룹 단어이지만, aabbbccb는 그룹 단어가 아니다. 단어 N개를 입력으로 받아 그룹 단어의 개수를 출력하는 프로그램을 작성하시오.
🔎 입력
첫째 줄에 단어의 개수 N이 주어진다. (1 ≤ N ≤ 100)
둘째 줄부터 N개의 줄에 단어가 주어진다. 각 단어는 알파벳 소문자로만 되어 있으며, 길이는 최대 100이다.
🔎 출력
첫째 줄에 그룹 단어의 개수를 출력한다.
🎀 입출력 예시
정답
C++
#include <iostream>
#include <vector>
#include <string>
using namespace std;
int main()
{
int n;
cin >> n;
int count = 0;
for(int i = 0; i < n; i++)
{
string s;
cin >> s;
vector<bool> check(26, false); // 알파벳의 등장 여부를 저장
bool isGroupWord = true;
for(int j = 0; j < s.length(); j++)
{
// 이전 문자와 다른데 이미 나왔던 문자라면 그룹 단어가 아님
if (check[s[j] - 'a'] && s[j] != s[j - 1])
{
isGroupWord = false;
break;
}
// 해당 문자를 체크 표시
check[s[j] - 'a'] = true;
}
if (isGroupWord)
count++;
}
cout << count << endl; // 그룹 단어의 개수 출력
return 0;
}
C#
using System;
using System.Collections.Generic;
class Program
{
static bool IsGroupWord(string word)
{
bool[] alphabet = new bool[26];
char prevChar = '\0';
foreach (char ch in word)
{
if (ch != prevChar)
{
if (alphabet[ch - 'a'])
{
return false;
}
alphabet[ch - 'a'] = true;
prevChar = ch;
}
}
return true;
}
static void Main(string[] args)
{
int n = int.Parse(Console.ReadLine());
int count = 0;
for (int i = 0; i < n; i++)
{
string word = Console.ReadLine();
if (IsGroupWord(word))
{
count++;
}
}
Console.WriteLine(count);
}
}
728x90
반응형
'◆C# > C# : 백준 문제 풀이' 카테고리의 다른 글
[백준] C++ & C# 개표 (10102번) (0) | 2024.09.23 |
---|---|
[백준] C++ & C# ATM (11399번) (0) | 2024.09.22 |
[백준] C++ & C# 제로 (10773번) (0) | 2024.09.21 |
[백준] C++ & C# 약수 구하기 (2501번) (0) | 2024.09.21 |
[백준] C++ & C# Bank Interest (21633번) (0) | 2024.09.21 |