본문 바로가기

Python(알고리즘,문제풀이)/프로그래머스(코딩기초트레이닝)

코딩기초트레이닝 / 문자 개수 세기

728x90

📚문제

출처 : 프로그래머스(https://school.programmers.co.kr/learn/courses/30/lessons/181902)

 

📝풀이

def solution(my_string):
    result = [0]*52
    
    for i in my_string:
        if i.isupper(): # i가 대문자라면
            result[ord(i)-65] += 1 
            # ord는 문자열의 유니코드 반환
            # ord(i) - 65는 대문자 알파벳의 인덱스
            # (ord('A')-65) ~ (ord('Z')-65) => 0~25
        else:
            result[ord(i)-71] += 1
            # ord(i) - 71은 소문자 알파벳의 인덱스
            # (ord('a')-71) ~ (ord('z')-71) => 26~52
    return result

*ord('str') : str의 유니코드 반환

 

1) 값이 0인 원소가 52개 있는 리스트 생성

2) my_string을 for문 돌면서 대문자인지 아닌지 확인

3-1) 대문자일경우 ord(i)-65의 대문자 인덱스로 result 리스트에서 인덱싱한 후에 += 1

3-2) 소문자일경우 ord(i)-71의 소문자 인덱스로 result 리스트에서 인덱싱한 후에 += 1

 

728x90