반응형
DoZZang
Do IT
DoZZang
전체 방문자
오늘
어제
  • Programming
    • Git
    • Web
    • 기타
    • Python
      • CodeUp
    • Math
    • Algorithm
    • Baekjoon
    • C,C++
    • Life
      • 독서
      • Just
      • 영화

블로그 메뉴

  • 홈
  • 태그
  • 방명록

인기 글

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
DoZZang

Do IT

[C++] 10808번: 알파벳 개수
Baekjoon

[C++] 10808번: 알파벳 개수

2024. 2. 21. 15:35
반응형

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

 

10808번: 알파벳 개수

단어에 포함되어 있는 a의 개수, b의 개수, …, z의 개수를 공백으로 구분해서 출력한다.

www.acmicpc.net

 풀이

 

문자열의 원리를 이해하고 있으면 쉽게 풀 수 있는 문제이다.

 

나의 코드

#include <bits/stdc++.h>
using namespace std;

int main() {
	ios::sync_with_stdio(0);
	cin.tie(0);
	string s;
	vector<int> v(26);
	cin >> s;
	for (char c : s) {
		int num = c - 97;
		v[num]++;
	}
	for (int a : v) {
		cout << a << ' ';
	}
}

 

C++ 11 이상에서 지원하는 ranged-based loop를 사용해보았다!

나는 아스키 코드 값을 암기하고 있어서 아스키 코드 값을 이용하여 코드를 작성했다.

(소문자 a 아스키 코드 값 : 97 대문자 A 아스키 코드 값 : 65) // 32를 빼주면 된다!

 

하지만, 아스키 코드 값을 몰라도 심지어 추가 메모리를 사용하지 않고도 풀 수 있는 코드가 존재했다.

#include <bits/stdc++.h>
using namespace std;

int main() {
	ios::sync_with_stdio(0);
	cin.tie(0);
	string s;
	cin >> s;
	for (char a = 'a'; a <= 'z'; a++) {
		int cnt = 0;
		for (auto c : s)
			if (a == c) cnt++;
		cout << cnt << ' ';
	}
}

auto 키워드에 익숙해지자!

 

반응형
저작자표시 (새창열림)

'Baekjoon' 카테고리의 다른 글

[C++] 1475번 : 방 번호  (0) 2024.02.22
[C++] 2577번: 숫자의 개수  (0) 2024.02.21
[C++]백준 10804번: 카드 역배치  (1) 2024.02.08
[C++]백준 10093번: 숫자  (0) 2024.02.06
[C++]백준 2309번: 일곱 난쟁이  (1) 2024.02.05
    'Baekjoon' 카테고리의 다른 글
    • [C++] 1475번 : 방 번호
    • [C++] 2577번: 숫자의 개수
    • [C++]백준 10804번: 카드 역배치
    • [C++]백준 10093번: 숫자
    DoZZang
    DoZZang
    과정은 힘들지만 성장은 즐겁습니다.

    티스토리툴바