본문 바로가기

PYTHON/CODING TEST

[programmers] 외톨이 알파벳

728x90

문제 링크

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

 

프로그래머스

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

programmers.co.kr

 

 

풀이

 

내 풀이

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