kunkunwoo@blog:~$ 거누권의 생각깜지

백준 1316번 _ 그룹 단어 체커

· 배운 것 · 2분 읽기

https://www.acmicpc.net/problem/1316

1316번: 그룹 단어 체커

풀이방법

중복체크 : set이용
문자가 연속되는것 처리 : before를 만들어 현재 문자와 계속 비교하고 같다면 넘어갔다.
사실 이것말고는 없어서.. 그냥 넘어가겠다.


전체코드

#include <iostream>
#include <set>

using namespace std;

set<char> alreadyLetter;

int main()
{
	int T;
	cin >> T;
	int cnt = T;
	for (int i = 0; i < T; i++)
	{
		string str;
		cin >> str;

		char before =' ';
		for (int i = 0; i < (int)str.size(); i++)
		{
			char present = str[i];
			if (before == present)
				continue;
			
			//그룹 단어가 아니다
			if (alreadyLetter.count(present) != 0)
			{
				cnt -= 1;
				break;
			}
			alreadyLetter.insert(present);
			before = present;
		}
		alreadyLetter.clear();
	}

	cout << cnt;
	return 0;
}

후기

문자열이 좀 부족하다 싶어서 백준 문자열 문제를 풀어보았는데 역시 초반 문제라 그런지 어렵지는 않았다. 그리고 역시 술술 풀리니까 실력에 도움이 될진 모르겠지만 기분은 좋다.