🚩 코딩테스트/알고리즘

[프로그래머스] [PCCP 모의고사 #1] 외톨이 알파벳

딩딩크롱 2023. 2. 18. 18:12
728x90

문제

https://school.programmers.co.kr/learn/courses/15008/lessons/121683

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

풀이

input_string의 맨 뒤에 공백을 추가합니다.

Counter()를 사용하여 알파벳의 종류를 구합니다.

checkdefaultdict()를 사용해 앞서 체크했는지 여부를 저장합니다.

문자열의 앞뒤를 확인해 서로 다른 경우

아직 체크하지 않은 문자라면 체크하고, 이미 체크한 문자라면 answer에 해당 문자를 추가합니다.

중복을 제거한 answer를 정렬한 후 join()을 사용해 반환합니다.

 

코드

파이썬
from collections import Counter, defaultdict

def solution(input_string):
    answer = []
    input_string += ' '
    count = Counter(input_string)
    check = defaultdict(bool)
    n = len(input_string)
    
    for i in range(n-1):
        if input_string[i] != input_string[i+1]:
            if not check[input_string[i]]:
                check[input_string[i]] = True
            else:
                answer.append(input_string[i])
        
    return ''.join(sorted(list(set(answer)))) if answer else 'N'
728x90