알고리즘&자료구조/Algorithm

백준 10808 - 알파벳 개수

백엔드 개발자 - 젤리곰 2024. 5. 18. 05:46
728x90

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

 

1. 문제

소문자로만 이뤄진 알파벳이 주어진다.

문자열에 a~z까지 알파벳이 몇개인지 세어서 출력하라.

 

2. 아이디어

a부터 z까지 알파벳은 26개다.

0이 26개로 이뤄진 리스트를 만든다.

인덱스를 이용해서 리스트의 값을 +1해주면 된다.

알파벳의 인덱스를 구하는 방법으로 아스키코드 값을 이용하기로 했다.

'a'의 아스키코드는 97이니 파이썬의 ord()메서드를 이용해서 알파벳의 인덱스를 구했다.

 

✅풀이 코드

abc = [0 for _ in range(26)] #26개의 0으로 이뤄진 리스트를 만든다.

s = input() #문자열 입력

for item in s: #문자열을 순회한다.
    item_index = ord(item)-97 #알파벳의 인덱스를 구한다.
    abc[item_index] += 1 #0으로 이뤄진 리스트를 이제 알파벳 인덱스에 맞게 +1 해준다.

result = [str(i) for i in abc] #int값을 str으로 타입변환
print(" ".join(result)) #공백으로 구분하여 출력
728x90