Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
Tags
- 네트워크
- 코딩테스트 [ ALL IN ONE ]
- SDK
- 커널 동기화
- BreadcrumbsComputer-Networking_A-Top-Down-Approach
- 개발남노씨
- vite
- B tree 데이터삽입
- recoverability
- 데이터베이스
- 갤럭시 S24
- 프로세스 주소 공간
- Extendable hashing
- 쉬운 코드
- Git
- CPU 스케줄링
- SQL
- concurrency control
- 코딩애플
- 시스템프로그래밍
- 운영체제
- 인터럽트
- 운영체제와 정보기술의 원리
- 트랜잭션
- 쉬운코드
- 온디바이스AI
- 반효경
- 김영한
- 백엔드
- 시그널 핸들러
Archives
- Today
- Total
티끌모아 태산
[백 준/구현] 10808: 알파벳 개수 본문
728x90
https://www.acmicpc.net/problem/10808
10808번: 알파벳 개수
단어에 포함되어 있는 a의 개수, b의 개수, …, z의 개수를 공백으로 구분해서 출력한다.
www.acmicpc.net
핵심 아이디어
- 카운팅 배열
- 아스키 코드
코드 구현
s = input()
arr = [0] * 26
for i in s:
arr[ord(i) - 97] += 1
for i in arr:
print(i, end = ' ')
arr = [0 0 ... 0] 0이 26개 있는 list의 각 원소들을 update해주는 형태로 로직을 짜면 됩니다.
예) n이 'baekjoon'인 경우, 첫번째 for문에서 i는 'b'가 되어 arr[ord('b')-97] = arr[1]가 제대로 update됩니다.
C ++ 코드
C++ 에서 size() 와 length()의 차이점을 알게 됐다. 전자는 string 객체가 메모리에서 실제 사용하고 있는 크기를 나타내며, 후자는 문자열의 길이를 나타낸다.
#include <iostream>
#include <algorithm>
#include <string>
using namespace std;
int list[26]; // 26개의 정수를 저장할 수 있는 배열 선언
int main() {
// 이 두줄은 C++ 프로그램 입출력 속도 향상 설정
ios::sync_with_stdio(false);
cin.tie(0);
// 입력받을 문자열을 저장할 변수
string str;
cin >> str; // 문자열 입력 받기
for (int i = 0; i < str.size(); i++) {
list[str[i] - 'a']++;
}
for (int i = 0; i < 26; i++) {
cout << list[i] << "";
}
}
728x90
'백준 문제 > 문자열,누적합,구현' 카테고리의 다른 글
[백 준/구현] 10988: 팰린드롬인지 확인하기 (0) | 2023.12.26 |
---|---|
[백 준/구현] 2979: 트럭 주차 (0) | 2023.12.26 |
[백 준/구현] 2309: 일곱 난쟁이 (1) | 2023.12.26 |