Python(알고리즘,문제풀이)/프로그래머스(코딩기초트레이닝)
코딩기초트레이닝 / 문자 개수 세기
박혀노
2023. 10. 18. 22:39
728x90
📚문제
📝풀이
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