🔗 문제
https://school.programmers.co.kr/learn/courses/30/lessons/181902
문제 설명
알파벳 대소문자로만 이루어진 문자열 my_string
이 주어질 때, my_string
에서 'A'의 개수, my_string
에서 'B'의 개수,..., my_string
에서 'Z'의 개수, my_string
에서 'a'의 개수, my_string
에서 'b'의 개수,..., my_string
에서 'z'의 개수를 순서대로 담은 길이 52의 정수 배열을 return 하는 solution 함수를 작성해 주세요.
제한사항
- 1 ≤
my_string
의 길이 ≤ 1,000
입출력 예
💻 Code
from string import ascii_uppercase, ascii_lowercase
def solution(my_string):
alphabet = ascii_uppercase + ascii_lowercase
char_dict = dict.fromkeys(alphabet, 0)
for i in my_string:
char_dict[i] += 1
return list(char_dict.values())
- 길이가 52인 리스트를 만든 뒤
ord()
로 유니코드를 이용하여 문제를 풀 수도 있지만, 알파벳 그 자체를 키 값으로 이용하고 싶어서 이렇게 풀었다. string
모듈의ascii_uppercase
와ascii_lowercase
는 알파벳 대문자와 소문자를 나타내는 문자열이다.ascii_uppercase
: "ABCDEFGHIJKLMNOPQRSTUVWXYZ"ascii_lowercase
: "abcdefghijklmnopqrstuvwxyz"
ascii_uppercase
와ascii_lowercase
를 하나의 문자열(alphabet
)로 합친 뒤,dict.fromkeys()
를 이용하여
모든 알파벳을 키로 하고 각 키에 대응하는 값을 0으로 초기화하는 딕셔너리char_dict
을 만든다.- for 루프를 통해
my_string
의 각 문자를 확인하며char_dict
의 값을 1씩 증가시킨다. - 등장 횟수만 출력하기 위하여
char_dict.values()
를 리스트로 변환하여 반환한다.
'Algorithm > 프로그래머스' 카테고리의 다른 글
[Lv.0/Python] 가까운 1 찾기 (0) | 2023.07.15 |
---|---|
[Lv.0/Python] 커피 심부름 (0) | 2023.07.15 |
[Lv.0/Python] qr code (0) | 2023.07.13 |
[Lv.0/Python] 문자열 계산하기 (0) | 2023.07.13 |
[Lv.0/Python] 구슬을 나누는 경우의 수 (0) | 2023.07.13 |