[문제 설명]
알파벳 대소문자로만 이루어진 문자열 my_string이 주어질 때,
my_string에서 'A'의 개수, my_string에서 'B'의 개수,..., my_string에서 'Z'의 개수,
my_string에서 'a'의 개수, my_string에서 'b'의 개수,..., my_string에서 'z'의 개수를
순서대로 담은 길이 52의 정수 배열을 return 하는 solution 함수를 작성해 주세요.
[제한사항]
1. 1 ≤ my_string의 길이 ≤ 1,000
def solution(my_string):
answer = []
return answer
- 다른 0단계 문제들은 보면 바로 알고리즘이 생각났는데, 이 문제는 처음 딱 봤을때 약간 당황함.
- 알파벳을 다 쪼개서 순서대로 정렬 (대문자 -> 소문자 순서)
[A] (내가 쓴 답)
def solution(my_string):
answer = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P',
'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h',
'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y',
'z']
return [my_string.count(i) for i in answer]
[A] 다른 답들
def solution(my_string):
answer=[0]*52
for x in my_string:
if x.isupper():
answer[ord(x)-65]+=1
else:
answer[ord(x)-71]+=1
return answer
* ord() : 아스키코드 변환 함수
def solution(my_string):
return [my_string.count(alphabet) for alphabet in 'abcdefghijklmnopqrstuvwxyz'.upper()+'abcdefghijklmnopqrstuvwxyz']
* 이 답들 외에도 기발한 답들이 많았지만 두개가 가장 직관적이었다.
'Algorithm > 프로그래머스' 카테고리의 다른 글
| [Python] [코딩 기초 트레이닝] / 전국 대회 선발 고사 (0) | 2024.08.24 |
|---|---|
| [Python] [코딩 기초 트레이닝] / 무작위로 K개의 수 뽑기 (0) | 2024.08.24 |
| [Python] [코딩 기초 트레이닝] / 왼쪽 오른쪽 (0) | 2024.08.19 |
| [Python] [코딩 기초 트레이닝] / 배열 조각하기 (0) | 2024.08.17 |
| [Python] [코딩 기초 트레이닝] / qr code (0) | 2024.08.17 |