728x90
문제 링크
https://school.programmers.co.kr/learn/courses/15008/lessons/121683
풀이
내 풀이
def find(string, char):
for i, c in enumerate(string):
if c == char:
yield i
def solution(input_string):
answer = ''
for i in sorted(list(set(input_string))):
s = list(find(input_string, i))
if s[-1] - s[0] > len(s)-1:
answer += i
if answer == '':
answer = 'N'
return answer
import collections
def solution(input_string):
dic = collections.defaultdict(int)
left = right = 0
while left <= right < len(input_string):
# 단어 뭉치 확인
while right < len(input_string) and input_string[left] == input_string[right]:
right += 1
# 단어 뭉치 저장
dic[input_string[left]] += 1
# 탐색 위치 초기화
left = right
# 외톨이 알파벳 확인
answer = set()
for d in dic.keys():
if dic[d] >= 2:
answer.add(d)
# 결과
if not answer:
return 'N'
return ''.join(sorted(answer))
728x90
'PYTHON > CODING TEST' 카테고리의 다른 글
[DFS/BFS] 음료수 얼려 먹기 (0) | 2024.05.10 |
---|---|
[programmers] 카드 뭉치 (0) | 2023.02.19 |
[programmers] 개인정보 수집 유효기간 (0) | 2023.02.12 |
[programmers] 호텔 대실 (0) | 2023.02.12 |
[programmers] 둘만의 암호 (0) | 2023.02.12 |