문제 링크 - https://school.programmers.co.kr/learn/courses/15008/lessons/121683?language=python3

 

프로그래머스

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

programmers.co.kr


문제 설명

알파벳 소문자로만 이루어진 문자열이 주어짐

해당 문자열 중 같지만 바로 옆에 붙어있지 않은 알파벳이 존재하는 경우 '외톨이 알파벳'으로 간주

외톨이 알파벳으로 이루어지고 알파벳 순으로 정렬된 새로운 문자열을 출력

 

풀이법 구상

반복문으로 각 자리의 글자를 대상으로 다른 똑같은 글자가 존재하는지 확인

단, 기준 글자의 바로 옆에 똑같은 다른 글자가 존재하는 경우 기준 인덱스 += 1 -> 그냥 바로 다음 글자로 넘어간다는 의미

기준 인덱스로부터 2자리 이상 떨어진 경우 외톨이 알파벳으로 간주

 

코드 구현 (파이썬 사용)

def solution(input_string):
    answer = ''

    for p in range(0,len(input_string)):
        if input_string[p] in answer: continue
        for q in range(p+1,len(input_string)):
            if input_string[p] == input_string[q]:
                if ((q-p) == 1): break
                elif ((q-p) > 1):
                    answer += input_string[p]
                    break
                
    if len(answer) == 0 : return 'N'
    else: return ''.join(sorted(answer))

+ Recent posts