본문 바로가기
  • Let's study
PS/백준

[C++] 백준 1316번: 그룹 단어 체커

by 코딩고수이고파 2020. 12. 8.

list 배열로 알파벳이 나왔던 건지 판단

1. 입력받은 str배열의 이전 위치와 현재 위치의 값이 다르다면 list 배열의 str[j-1]-'a' 에다가 1을 넣어준다.

(-'a'로 str이 문자배열이지만 숫자로 변경하여 저장가능)

2. 이때 만약 list 배열의 str[j]-'a' 에 저장된 값이 1이라면(이미 나온 적이 있음) flag=1로 바꿔주고 break로 반복문을 빠져나온다.

3. 반복문을 빠져나왔을 때 flag==0이라면(그룹단어임) 개수를 ++해준다.

 

 

#include<iostream>
#include<string>
using namespace std;

int main() {
	int list[26] = { 0, };
	int n;
	cin >> n;
	int cnt = 0;
	for (int i = 0; i < n; i++) {
		for (int j = 0; j < 26; j++) {
			list[j] = 0;
		}
		string str;
		cin >> str;
		int flag = 0;
		for (int j = 1; j < str.size(); j++) {
			if (str[j - 1] != str[j]) {
				list[str[j - 1] - 'a'] = 1;
				if ((list[str[j]-'a']) == 1) {
					flag = 1;
					break;
				}
			}
		}
		if (flag == 0)
			cnt++;
	}
	cout << cnt;
	return 0;
}

'PS > 백준' 카테고리의 다른 글

[C++] 백준 2231: 분해합  (0) 2020.12.23
[C++] 백준 2798번: 블랙잭  (0) 2020.12.23
[C++] 백준 2941번: 크로아티아 알파벳  (0) 2020.12.08
[C++] 백준 2667번: 단지번호붙이기  (0) 2020.11.29
[C++] 백준 2178번: 미로 탐색  (0) 2020.11.29

댓글