https://www.acmicpc.net/problem/1316
1316번: 그룹 단어 체커
그룹 단어란 단어에 존재하는 모든 문자에 대해서, 각 문자가 연속해서 나타나는 경우만을 말한다. 예를 들면, ccazzzzbb는 c, a, z, b가 모두 연속해서 나타나고, kin도 k, i, n이 연속해서 나타나기 때
www.acmicpc.net
1. 풀이 코드(C++)
#include <iostream>
using namespace std;
int main(void) {
int n,cnt = 0;
string word;
bool flag;
cin >> n;
for (int i = 0; i < n; i++) { //new word
cin >> word;
flag = true;
for (int j = 0; j < word.length(); j++) {
for (int k = 0; k < j; k++) {
if (word[j] != word[j - 1] && word[j] == word[k]) {
flag = false;
break;
}
}
}
if (flag) {
cnt++;
}
}
cout << cnt;
return 0;
}
2. 문제를 풀면서 배운점
(1) flag 사용해서 풀기
- if (flag)의 의미는 flag == true이다. 그렇다면 당연히 if(!flag)는 flag == false이겠지.
(2) 포인터 쓰지 않고도 string만으로도 가능
- 처음에는 포인터를 이용해서 풀려고 했다. 복잡하지 않고 간단하게 풀리는 문제였다.
(3) a의 경우 어려우면 -> !a 떠올리기
(4) C++에서는 string 자료형을 쓸 수 있다. C에서는 불가능. C에서는 char만.
'알고리즘 > C++ 풀이 기록' 카테고리의 다른 글
| 백준 - 1181 단어 정렬 (0) | 2021.09.11 |
|---|---|
| 백준 - 1026 보물 (0) | 2021.09.10 |
| 백준 - 22993 서든어택 3 (0) | 2021.09.07 |
| 백준 - 1158 요세푸스 문제 (0) | 2021.09.06 |
| 백준 - 1789 수들의 합 (0) | 2021.09.06 |