728x90
문제
https://school.programmers.co.kr/learn/courses/15008/lessons/121683
풀이
input_string
의 맨 뒤에 공백을 추가합니다.
Counter()
를 사용하여 알파벳의 종류를 구합니다.
check
는 defaultdict()
를 사용해 앞서 체크했는지 여부를 저장합니다.
문자열의 앞뒤를 확인해 서로 다른 경우
아직 체크하지 않은 문자라면 체크하고, 이미 체크한 문자라면 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
'🚩 코딩테스트 > 알고리즘' 카테고리의 다른 글
[프로그래머스] [PCCP 모의고사 #2] 실습용 로봇 (0) | 2023.02.18 |
---|---|
[프로그래머스] [PCCP 모의고사 #1] 체육대회 (0) | 2023.02.18 |
[백준] 13023번: ABCDE (0) | 2023.02.16 |
[백준] 15591번: MooTube (Silver) (0) | 2023.02.14 |
[프로그래머스] 미로 탈출 명령어 (0) | 2023.02.02 |