BOJ/[ BOJ ] C++

[ C++ ] #10808 ( 알파벳 개수 )

haena02 2022. 2. 7. 02:15
반응형

#include <iostream>
#include <string>

using namespace std;

int main() {

	string s;
	cin >> s;
	for (char a = 'a'; a <= 'z'; a++) {
		int cnt = 0;
		for (auto c : s) //타입 추론 : 초깃값의 형식에 맟춰 선언하는 인스턴스(변수)의 형식이 '자동'으로 결정
			if (a == c) cnt++;
		cout << cnt << ' ';
	}

}

 

 

 

이 방법으로 하면 문자열을 26번 탐색해야하므로

정답은 맞지만 효율적이지 않은 코드라고 할 수 있다.

 

#include <iostream>
#include <string>

using namespace std;

int main() {

	string s;
	cin >> s;
	int A[26] = {0,};
	for (auto c : s) 
		A[c - 'a']++;
	for (int a : A) 
		cout << a << " ";
}

이렇게 하면 문자열을 한번만 보고 개수를 샐 수 있다.

반응형

'BOJ > [ BOJ ] C++' 카테고리의 다른 글

[ C++ ] #2576 ( 홀수 )  (0) 2022.02.08
[ C++ ] #2480 (주사위 세개)  (0) 2022.02.08
[ C++ ] # 2480 (주사위 세개)  (0) 2022.01.10
[ C++ ] #2752 ( 세수정렬 )  (0) 2022.01.10
[ C++ ] 10171 ( 고양이 )  (0) 2022.01.10