숫자세기는 기본적으로 Counter() 함수를 항상 먼저 생각하기.
1. 프로그래머스 python 코딩테스트 입문
Level 0. 한 번만 등장한 문자
문자열 s가 매개변수로 주어집니다. s에서 한 번만 등장하는 문자를 사전 순으로 정렬한 문자열을 return 하도록 solution 함수를 완성해보세요. 한 번만 등장하는 문자가 없을 경우 빈 문자열을 return 합니다.
나의 오답과 이유
from collections import Counter
def solution(s):
a = Counter(s)
return sorted(''.join(a.values()==1))
items()
함수를 사용해야함.정답
1. 나의 오답을 최대한 수정한 답 : Counter()
items()
from collections import Counter
def solution(s):
a = Counter(s)
b = ''.join(k for k, v in a.items() if v == 1)
return ''.join(sorted(b))
from collections import Counter
def solution(s):
return ''.join(sorted(k for k, v in Counter(s).items() if v == 1))
2. count()
만 사용하기
def solution(s):
return ''.join(sorted(c for c in s if s.count(c) == 1))
Counter()
사용3. Counter()
만 사용하기
from collections import Counter
def solution(s):
a = Counter(s)
b = [i for i in a if a[i] == 1]
return ''.join(sorted(b))
추가로 복습하면 좋은 점
join()
: 문자열, 리스트 모두 가능. 숫자는 불가능. (숫자는 문자로 변경 후 사용) [1,2,3,55] 이런 숫자 리스트는 i for i 를 사용하여 문자로 변경한 후, join해야함.count()
보다 Counter()
가 더 효율적임.