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
'알고리즘&자료구조 > Algorithm' 카테고리의 다른 글
백준 1018 - 체스판 다시 칠하기 (0) | 2024.05.20 |
---|---|
백준 1085 - 직사각형에서 탈출 (0) | 2024.05.19 |
백준 2845 - 파티가 끝나고 난 뒤 (0) | 2024.05.17 |
프로그래머스 12973 - 짝지어 제거하기 (0) | 2024.04.26 |
프로그래머스 64065 - 튜플 (1) | 2024.04.26 |