728x90
[백준알고리즘] 1316번: 그룹 단어 체커 -C++
C++ 연습을 시작해야겠다.. 토이 프로젝트 하는거 아니면 알고리즘 연습할겸 하는 것도 괜찮은 것 같다.
암튼 그룹 단어인 개수를 세어줘야 한다.
그룹 단어는 다음 두 가지 기준으로 정리했다.
- 주어진 단어에서 이전 알파벳과 현재 알파벳이 같은가
- 다르다면, 해당 단어에서 이전에 한 번 이상 나온 문자인가
2번 기준에서 True라면 해당 단어는 그룹 단어가 아니며, 이외의 경우에는 모두 그룹 단어이다.
#include <string>
#include <iostream>
int main(void)
{
int n;
std::cin >> n;
int answer = 0;
for (int i = 0; i < n; i++)
{
std::string word;
std::cin >> word;
int len = word.length();
if (len == 1)
{
answer += 1;
continue;
}
int alphabet[26] = { 0, };
alphabet[word[0] - 'a'] += 1;
for (int j = 1; j < len; j++)
{
if (word[j] == word[j - 1]) continue;
if (alphabet[word[j] - 'a'] > 0)
{
answer--;
break;
}
alphabet[word[j] - 'a'] += 1;
}
answer++;
}
std::cout << answer;
}
잘못된 점이나 부족한 점 지적해주시면 감사하겠습니다
728x90
'algorithm > 백준알고리즘' 카테고리의 다른 글
[백준알고리즘] 11720번: 숫자의 합 -C++ (0) | 2021.01.11 |
---|---|
[백준알고리즘] 1065번: 한수 -C++ (0) | 2021.01.11 |
[백준알고리즘] 4344번: 평균은 넘겠지 -Python (0) | 2021.01.08 |
[백준알고리즘] 8958번: OX퀴즈 -Python (0) | 2021.01.08 |
[백준알고리즘] 1546번: 평균 -Python (0) | 2021.01.08 |