문제 링크
/******
* Author : Jiung
* Filename : 1316.cpp
* Version : Apple clang version 12.0.0 (clang-1200.0.32.27)
* Date : 2021-02-12
* Copyright : Free
*/
#include <iostream>
#include <string>
using namespace std;
/* global variables */
int N, Words, DeferWord = 0;
string tmp;
/*
* function GroupWordChecker
*
* bool check 배열을 이용해서
* 문제를 풀었습니다.
*/
void GroupWordChecker() {
while(N) {
cin >> tmp;
bool check[26] = {false, };
for(int i=0; i < tmp.length(); i++) {
/*
* 단어가 true일 경우에는 전에도 나온
* 문자를 의미하므로, 해당 for statement를
* 종료하고 Deferword를 1을 증가합니다.
*/
if (check[tmp[i]-'a'] == true) {
DeferWord += 1;
break;
}
/*
* 만약 다음 문자가 다를 경우, 연속 문자의 끝이므로
* 아스키 코드 특성을 이용해서 check 배열을 true 처리
* 합니다.
*/
if (tmp[i] != tmp[i+1]) {
check[tmp[i]-'a'] = true;
}
}
N -= 1;
}
}
int main() {
// input N, word
cin >> N;
Words = N;
// process funtion
GroupWordChecker();
// Result Output
cout << Words - DeferWord << endl;
}
부족한 부분이 있다면, 댓글이나 쪽지 부탁드립니다.
감사합니다.
'알고리즘 > 문제' 카테고리의 다른 글
백준 9012 괄호 - C++ 풀이 공유 (0) | 2021.02.24 |
---|---|
BOJ 10163 색종이 - C++ 풀이공유 (0) | 2021.02.16 |
팩토리얼(Factorial) - C++ (0) | 2021.02.13 |
백준 10845 큐 - C++ 풀이공유 (0) | 2021.02.11 |
백준 1874 스택수열 - C++ 풀이 (0) | 2021.02.09 |