[1]. 그룹 단어 체커(1316)- C++
똑같은 스팰링이 연속해서 나타나면 그룹으로 만들고, 같은 스팰링이 떨어져 있다면, 그룹 단어가 아니기에 그룹 단어의 개수에 포함하지 않는다.
[1.1] 구현
- aabbbccb 는 bbb, b의 같은 b의 그룹 단어가 2개 있으니 개수에 포함하지 않게 구현하면 된다.
- map을 이용했다. 알파벳이 소문자로 되어 있으니 크기가 26인 배열을 만들어서 arr[word[i] - 'a'] 형태로 구현하여도 된다.
- 반복문(for) 안에서 첫 i 가 0 일 경우에는 i-1을 하지 못하지 처음 m[word[0]] = true로 초기값을 설정하여 i가 1을 시작하게 만들게 했다.
#include <bits/stdc++.h>
using namespace std;
int t, cnt = 0;
string word;
int main() {
// fast i/o
cin.tie(0);
cout.tie(0);
ios_base::sync_with_stdio(false);
// input
cin >> t;
while(t--) {
cin >> word;
map<char, bool> m;
m[word[0]] = true;
bool flag = true;
for (int i = 1; i < word.length(); i++) {
if (m[word[i]] && word[i-1] != word[i]) {
flag = false;
break;
}
m[word[i]] = true;
}
if (flag) cnt++;
}
cout << cnt;
}
[1.2] 결과
• Accepted
- Memory: 2028 kb
- Time : 0 ms
-- 문제 링크
'알고리즘 > 문제' 카테고리의 다른 글
차이를 최대로 - 10819 (C++, DFS) (0) | 2024.01.28 |
---|---|
ATM - 11399 (C++) (0) | 2024.01.18 |
LeetCode, Longest Substring Without Repeating Characters (Golang) (0) | 2022.01.27 |
LeetCode - Two Sum (Golang) (0) | 2022.01.14 |
백준 9012 괄호 - C++ 풀이 공유 (0) | 2021.02.24 |