백준

[파이썬]-백준(BOJ)10809 _ 알파벳 찾기

Ho's log 2021. 7. 26. 21:59

 

# https://www.acmicpc.net/problem/10809

 

10809번: 알파벳 찾기

각각의 알파벳에 대해서, a가 처음 등장하는 위치, b가 처음 등장하는 위치, ... z가 처음 등장하는 위치를 공백으로 구분해서 출력한다. 만약, 어떤 알파벳이 단어에 포함되어 있지 않다면 -1을 출

www.acmicpc.net

 

해결방안

문자열을 받고 딕셔너리에 넣어준다 setdefault 함수는 기존에 있던 값으로 그대로 값을 사용한다 

string.ascil_lowercase 는 소문자 알파벳 배열에 있는 내장 값이다

 

# https://www.acmicpc.net/problem/10809
# 알파벳 찾기
import string


def solution(strings):

    answer = '' # 조인할 문자열

    alpabat = dict() # 딕셔너리 선언

    # 입력받은거 돌면서
    for index, element in enumerate(strings):
        alpabat.setdefault(element, index) #엘리먼트 값으로 인덱스저장

    for element in string.ascii_lowercase: # string.ascil_lowercase => 소문자 알파벳 배열
        if element in alpabat: # 딕셔너리 안에 있으면
            answer += (str(alpabat[element])) #알파벳 더하기
        else:
            answer += (str(-1)) #-1  더하기
        answer += ' ' # 한칸 뛰어주고
    return answer

if __name__ == '__main__':

    print(solution(input()))