[자료구조(참고)] [BJ10808] 알파벳 개수
✏️ 𝗔𝗹𝗴𝗼𝗿𝗶𝘁𝗵𝗺/백준 알고리즘

[자료구조(참고)] [BJ10808] 알파벳 개수

코드 플러스

🚩 문제 설명

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

 

10808번: 알파벳 개수

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

www.acmicpc.net

BJ10808

⏱️ 시간 복잡도
▪ 문자열의 길이를 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