문자 개수 세기

yonny·2023년 4월 22일
0
post-custom-banner

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

입출력 예 설명

입출력 예 #1

예제 1번의 my_string에서 'P'가 1개, 'a'가 1개, 'e'가 1개, 'g'가 1개, 'm'이 2개, 'o'가 1개, 'r'가 3개, 's'가 1개 있으므로 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 2, 0, 1, 0, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0]를 return 합니다.

def solution(my_string):
    answer = [0 for i in range(52)]
    for string in my_string:
        if string.isupper(): k = 65
        else: k = 71
        answer[ord(string)-k] += 1
    return answer

아이디어
알파벳 A의 아스키 코드 → 65 / a 의 아스키 코드 → 97
대문자 A~Z의 배열 인덱스가 0~25이 되고 a~z의 배열 인덱스가 26~52
따라서 대문자의 경우 아스키 코드에서 65를 빼줘야하고 소문자의 경우 71을 빼줘야함

post-custom-banner

0개의 댓글