๋ฌธ์
๊ทธ๋ฃน ๋จ์ด๋ ๋จ์ด์ ์กด์ฌํ๋ ๋ชจ๋ ๋ฌธ์์ ๋ํด์, ๊ฐ ๋ฌธ์๊ฐ ์ฐ์ํด์ ๋ํ๋๋ ๊ฒฝ์ฐ๋ง์ ๋งํ๋ค. ์๋ฅผ ๋ค๋ฉด, ccazzzzbb๋ c, a, z, b๊ฐ ๋ชจ๋ ์ฐ์ํด์ ๋ํ๋๊ณ , kin๋ k, i, n์ด ์ฐ์ํด์ ๋ํ๋๊ธฐ ๋๋ฌธ์ ๊ทธ๋ฃน ๋จ์ด์ด์ง๋ง, aabbbccb๋ b๊ฐ ๋จ์ด์ ธ์ ๋ํ๋๊ธฐ ๋๋ฌธ์ ๊ทธ๋ฃน ๋จ์ด๊ฐ ์๋๋ค.
๋จ์ด N๊ฐ๋ฅผ ์ ๋ ฅ์ผ๋ก ๋ฐ์ ๊ทธ๋ฃน ๋จ์ด์ ๊ฐ์๋ฅผ ์ถ๋ ฅํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.
์ ๋ ฅ
์ฒซ์งธ ์ค์ ๋จ์ด์ ๊ฐ์ N์ด ๋ค์ด์จ๋ค. N์ 100๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ ์์ฐ์์ด๋ค. ๋์งธ ์ค๋ถํฐ N๊ฐ์ ์ค์ ๋จ์ด๊ฐ ๋ค์ด์จ๋ค. ๋จ์ด๋ ์ํ๋ฒณ ์๋ฌธ์๋ก๋ง ๋์ด์๊ณ ์ค๋ณต๋์ง ์์ผ๋ฉฐ, ๊ธธ์ด๋ ์ต๋ 100์ด๋ค.
์ถ๋ ฅ
์ฒซ์งธ ์ค์ ๊ทธ๋ฃน ๋จ์ด์ ๊ฐ์๋ฅผ ์ถ๋ ฅํ๋ค.
ํ์ด
01. ๊ธฐ๋ณธ์ ์ผ๋ก boolean ์๋ฃํ์ ๋ฐฐ์ด์ ๋ง๋ค๊ณ 0์ผ๋ก ์ด๊ธฐํํ๋ค.
02. ๋ฌธ์๊ฐ ์ฒ์์ผ๋ก ๋์ค๋ฉด 1์ ๋ฃ์ด์ค๋ค.
03. ๋ง์ฝ ์ด์ ์ ๋์จ ๋ฌธ์์ ํ์ฌ ๋ฌธ์๊ฐ ๋ค๋ฅด๊ณ ์ํ๋ฒณ ๋ฐฐ์ด์ ํด๋น ๋ฌธ์๊ฐ 1์ด๋ผ๋ฉด(์ด๋ฏธ ๋์จ ์ ์ด ์๋ค๋ฉด) ๋ฐ๋ก returnํด์ค๋ค.
word[0] - 97(ascii)์ ํด๋ ์ข์ง๋ง ํน์ ๋ชจ๋ฅผ ์๋ฌ๋ฅผ ๋ฐฉ์งํ๊ธฐ ์ํด 'a'๋ก ์์ฑํ๋ ๊ฒ์ด ์ข๋ค.
#include <iostream>
using namespace std;
bool alphabet[26]; // bool ์๋ฃํ์ผ๋ก ๋ณ๊ฒฝ
int cnt = 0;
void checker(string word){
fill_n(alphabet, 26, 0);
alphabet[word[0] - 'a'] = 1; // ascii ์ฝ๋ ๋์ 'a'๋ก ์์ฑํ๊ธฐ!
for (int i=1; i<word.length(); i++){
int idx = word[i] - 'a';
// ๊ทธ๋ฃน ๋จ์ด๊ฐ ์๋ ๊ฒฝ์ฐ
if (word[i-1] != word[i] && alphabet[idx] != 0)
return;
alphabet[idx] = 1;
}
cnt++;
}
int main(){
int n;
string word;
cin >> n;
for (int i=0; i<n; i++){
cin >> word;
checker(word);
}
cout << cnt;
}
'โจ Algorithm' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค/C++] 1946๋ฒ : ์ ์ ์ฌ์ (0) | 2021.09.06 |
---|---|
[๋ฐฑ์ค/C++] 1431๋ฒ : ์๋ฆฌ์ผ ๋ฒํธ (0) | 2021.09.06 |
[๋ฐฑ์ค/C++] 1026๋ฒ : ๋ณด๋ฌผ (0) | 2021.09.06 |
[๋ฐฑ์ค/C++] 13305๋ฒ : ์ฃผ์ ์ (0) | 2021.09.02 |
[EPPER/C++] ๋ฌธ์์ด ์์ถ (0) | 2021.09.01 |
๋๊ธ