🚩 문제 설명
https://www.acmicpc.net/problem/10808
⏱️ 시간 복잡도
▪ 문자열의 길이를 N이라고 한다면 시간 복잡도는 O(N)에 해당한다.
◾ 소문자로 이루어진 문자열 S가 주어지고, 해당 문자열에서 각 알파벳이 몇 개가 포함되어 있는지 구하는 문제
◾ 즉슨, 26개의 알파벳 중에서 문자열에 있는 소문자가 몇 개 있는지 출력하는 문제
◾ 대표적인 아스키 코드
- '0' ➡️ 48
- 'A' ➡️ 65
- 'Z' ➡️ 97
✅ 입출력
1) 소문자로 이루어진 문자열 S가 주어진다.
return ➡️ 문자열 S에 포함된 알파벳의 갯수를 출력한다. 26개의 문자로 구성되어 출력해야한다.
✔️ 예제 1
baekjoon
1 1 0 0 1 0 0 0 0 1 1 0 0 1 2 0 0 0 0 0 0 0 0 0 0 0
📑 문제 풀이
with 파이썬 (Python)
import sys
alphabet = [chr(i) for i in range(ord('a'), ord('z') + 1)]
S = list(sys.stdin.readline().strip())
ans = [0] * 26
for s in S:
if s in alphabet:
ans[alphabet.index(s)] += 1
print(*ans)
더보기
➕ 다른 코드
s = input()
for i in range(26):
ch = chr(i+ord('a'))
print(s.count(ch), end= ' ')
💬 Point
➡️ range(ord('A') , ord('Z') + 1)
➡️ alphabet.index()
◾ alphabet 배열을 만들어 놓고 각자의 인덱스를 두었다.
◾ 만약 s가 주어진 문자열에 있다면 해당 알파벳의 인덱스를 추가하는 형식으로 만들었다.
# 코드플러스 알파벳 개수
# 백준 10808 알파벳 개수 파이썬
728x90
'✏️ 𝗔𝗹𝗴𝗼𝗿𝗶𝘁𝗵𝗺 > 백준 알고리즘' 카테고리의 다른 글
[자료구조(참고)] [BJ10820] 문자열 분석 (0) | 2021.11.29 |
---|---|
[자료구조(참고)] [BJ10809] 알파벳 찾기 (0) | 2021.11.29 |
[자료구조(참고)] [BJ1935] 후위 표기식2 (0) | 2021.11.29 |
[자료구조(연습)] [BJ17299] 오등큰수 (0) | 2021.11.28 |
[자료구조(연습)] [BJ10799] 쇠막대기 (0) | 2021.11.28 |