나는 이렇게 학습한다/Algorithm & SQL

Count characters in your string

daco2020 2022. 2. 21. 09:38
반응형

문제 설명

The main idea is to count all the occurring characters in a string. If you have a string like aba, then the result should be {'a': 2, 'b': 1}.

What if the string is empty? Then the result should be empty object literal, {}.

 

 

 

해결 방법

1. 문자열을 요소별로 반복한다.

2. 문자열과 문자열의 수를 딕셔너리 키 값으로 넣는다.

 

 

def count(string):
    dict = {}
    for i in string:
        try:
            dict[i] += 1
        except KeyError:
            dict[i] = 1
    return dict

if로 풀 수 있지만 이번에는 try excep구문으로 풀어보았다.

이렇게 푼 이유는 아직 문자열을 키로 받지 못한 상태에서 += 로 값을 할당하면 '키'가 없다는 키에러가 발생하기 때문이다.

 

 

이 문제의 경우 여러가지 방법으로 풀 수 있다.

# 내장함수를 사용하는 경우

from collections import Counter

def count(string):
    return Counter(string)
# 딕셔너리 컴프리핸션을 사용한 경우

def count(string):
    return {i: string.count(i) for i in string}
    
 
 
# set을 이용하면 반복횟수를 줄일 수 있다.

def count(s):
    return {x:s.count(x) for x in set(s)}
# if를 사용한 경우

def count(string):
    r = {}
    for c in string:
        if c in r:
            r[c] += 1
        else:
            r[c] = 1
    return r
# 딕셔너리 메서드 get을 이용한 방법

def count(string):
    counter = {}
    for char in string:
        counter[char] = counter.get(char, 0) + 1
    return counter

 

try except구문으로 푼 사람은 나밖에 없더라.

 

 

 

반응형

'나는 이렇게 학습한다 > Algorithm & SQL' 카테고리의 다른 글

Detect Pangram  (0) 2022.02.23
The Hashtag Generator  (0) 2022.02.22
Human Readable Time  (0) 2022.02.20
Where my anagrams at?  (0) 2022.02.19
Write Number in Expanded Form  (0) 2022.02.18