https://www.acmicpc.net/problem/10808
문제 알파벳 소문자로만 이루어진 단어 S가 주어진다. 각 알파벳이 단어에 몇 개가 포함되어 있는지 구하는 프로그램을 작성하시오.
1
2
3
4
5
6
7
8
9
10
#a = 'baekjoon'
a = input()
string_count = [0]*26
len_num = len(a)
for i in range(len_num):
string_count[(ord(a[i])-97)]+=1
for i in range(26):
print(string_count[i], end=' ')
어차피 문자열을 동적으로 생성할 필요가 없다. 알파벳은 26개로 정해져 있기 때문이다.
알파벳이 들어오면 아스키코드로 바꿔주자 그러면 a는 97부터해서 쭉 연속된 숫자로 이어지기 때문에 97을 빼주면 된다.
그렇게 얻은 숫자를 배열의 인덱스로 삼고 1을 더해주면 된다.
그리고 모든 문자열을 탐색해야만 문자열을 출력할 수 있으니 시간 복잡도도 n+26 으로 봐줄만 한다.
Comments powered by Disqus.