BEAKJOON

백준(1316번 그룹 단어 체커)풀이 C++

Shin_jisoo 2021. 1. 10. 20:56
728x90

www.acmicpc.net/problem/1316

 

1316번: 그룹 단어 체커

그룹 단어란 단어에 존재하는 모든 문자에 대해서, 각 문자가 연속해서 나타나는 경우만을 말한다. 예를 들면, ccazzzzbb는 c, a, z, b가 모두 연속해서 나타나고, kin도 k, i, n이 연속해서 나타나기 때

www.acmicpc.net

1) 주석 없는 VERSION

#include <stdio.h>
#include <iostream>
#include <string>

using namespace std;

int main() {
	int n;
	cin >> n;

	string word;
	int count = 0;

	
	for (int i = 0;i < n;i++) {
		cin >> word;
		int 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) count++;
	}

	cout << count;
}

2) 주석 있는 VERSION

#include <stdio.h>
#include <iostream>
#include <string>

using namespace std;

int main() {
	int n;
	cin >> n;

	string word;
	int count = 0;

	
	for (int i = 0;i < n;i++) {
		cin >> word;
		int 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) count++;
	}

	cout << count;
}