코딩테스트/코딩 테스트 입문

한 번만 등장한 문자

kimyongjun0129 2025. 3. 31. 21:29

문제

 

# 내 풀이

def solution(s):
    answer = {}
    for b in s:
        cnt = 1
        if b not in answer:
            answer[b] = cnt
        else:
            answer[b] += 1
    return "".join(sorted(a for a in answer if answer[a] == 1))
  • 딕셔너리를 활용하여, Key 값에는 해당 알파벳을 Value 값에는 해당 알파벳 카운팅 횟수를 넣었다.
  • 한 번 호출된 값을 찾은 후, sorted 함수가 내부적으로 리스트를 만들어 정렬(제네레이터 방식)하고 join 함수에 반환한다. join 함수는 리스트를 문자열로 최종적으로 바꿔준다.

 

 

# GPT 풀이

def solution(s):
    char_count = {}
    
    for char in s:
        char_count[char] = char_count.get(char, 0) + 1
    
    return "".join(sorted([char for char in char_count if char_count[char] == 1]))
  • char_count.get(char, 0)는 char_count 딕셔너리에서 현재 문자 char의 값을 가져온다.
  • 만약 char가 딕셔너리에 없다면, 0을 반환한다. (char가 아직 등장하지 않았을 경우를 처리)

 

 

 

# 마무리

전체적인 구조는 비슷한 것 같다. 내 코드는 누구나 이해할 수 있는 직관적인 코드인 반면, GPT 코드는 좀더 간결하다.