티스토리 뷰
이걸 계속 봐도 도저히 어떤 식으로 풀어야 할지 몰라서 친구의 도움을 받았다.
0을 52개 만들고 my_string에서 해당 글자가 나오면 바로바로 1을 더하면 위치와 개수가 맞는다.
대문자면 앞에 26개, 소문자면 뒤에 26개에 해당한다.
개수는 나올 때마다 1을 더하면 개수는 해결되고,
위치는 유니코드를 이용했다.
<내가 쓴 코드>
def solution(my_string):
answer = [0]*52
for i in range(len(my_string)):
if my_string[i].isupper():
answer[ord(my_string[i])-ord("A")] += 1
elif my_string[i].islower():
answer[ord(my_string[i])-ord("a")+26] += 1
return answer
- ord()
- 하나의 문자를 인자로 받고 해당 문자에 해당하는 유니코드 정수를 반환
ex. ord('A')를 넣으면 정수 65를 반환 - chr()
- 하나의 정수를 인자로 받고 해당 정수에 해당하는 유니코드 문자를 반환
ex. chr(65)를 하면 문자 'A'를 반환
- islower()
- 문자열이 전부 소문자인가? - isupper()
- 문자열이 전부 대문자인가?
'Programmers > 코딩 기초 트레이닝' 카테고리의 다른 글
[프로그래머스] 문자열 여러 번 뒤집기 (0) | 2024.02.21 |
---|---|
[프로그래머스] 문자열 뒤집기 ^^ (0) | 2024.02.21 |
[프로그래머스] 배열 만들기 6 (0) | 2024.02.21 |
[프로그래머스] 두 수의 합 (0) | 2024.02.20 |
[프로그래머스] 왼쪽 오른쪽 (0) | 2024.02.20 |