[프로그래머스] LV.0 - 한 번만 등장한 문자 | 파이썬

SangJin Ham·2023년 6월 27일
0

프로그래머스

목록 보기
5/20
post-thumbnail

코딩테스트 역량 강화 교육(거점형 특화 프로그램)이라는 프로그램에 참여해 공부한 내용입니다.

LV.0 - 한 번만 등장한 문자

앞서 공부한 해시을 사용해 한 번만 등장한 문자 문제를 풀어보겠다.


문제 설명

문자열 s가 매개변수로 주어집니다. s에서 한 번만 등장하는 문자를 사전 순으로 정렬한 문자열을 return 하도록 solution 함수를 완성해보세요. 한 번만 등장하는 문자가 없을 경우 빈 문자열을 return 합니다.


제한사항

  • 0 < s의 길이 < 1,000
  • s는 소문자로만 이루어져 있습니다.

입출력 예

numbershand
"abcabcadc""d"
"abdc""abcd"
"hello""eho"

입출력 예 설명

입출력 예 #1

  • "abcabcadc"에서 하나만 등장하는 문자는 "d"입니다.

입출력 예 #2

  • "abdc"에서 모든 문자가 한 번씩 등장하므로 사전 순으로 정렬한 "abcd"를 return 합니다.

입출력 예 #3

  • "hello"에서 한 번씩 등장한 문자는 "heo"이고 이를 사전 순으로 정렬한 "eho"를 return 합니다.

코드

from collections import defaultdict

def solution(s):
    answer = []
    
    sH = defaultdict(int)
    
    for x in s:
        sH[x] += 1

    for key in sH:
        if sH[key] == 1:
            answer.append(key)
            
    return "".join(sorted(answer))

풀이

  1. defaultdict(int)를 이용해 모든 key 값을 0으로 초기화
  2. for문을 통해 s의 모든 원소를 돌며 각각의 sH[x]에 빈도 수를 저장
  3. 빈도 수가 1이면 한 번만 등장한 문자이므로, answer에 삽입
  4. sorted를 통해 answer 리스트를 정렬하고 join문을 이용해 문자열로 return
profile
끄적끄적

0개의 댓글