본문 바로가기

카테고리 없음

Python 백준 10809 알파벳 찾기

문제-
알파벳 소문자로만 이루어진 단어 S가 주어진다. 각각의 알파벳에 대해서, 단어에 포함되어 있는 경우에는 처음 등장하는 위치를, 포함되어 있지 않은 경우에는 -1을 출력하는 프로그램을 작성하시오.

입력-
첫째 줄에 단어 S가 주어진다. 단어의 길이는 100을 넘지 않으며, 알파벳 소문자로만 이루어져 있다.

출력-
각각의 알파벳에 대해서, a가 처음 등장하는 위치, b가 처음 등장하는 위치, ... z가 처음 등장하는 위치를 공백으로 구분해서 출력한다.

만약, 어떤 알파벳이 단어에 포함되어 있지 않다면 -1을 출력한다. 단어의 첫 번째 글자는 0번째 위치이고, 두 번째 글자는 1번째 위치이다.

해설-
입력받은 문자들을 아스키코드 값으로 변환 하고 26크기의 배열을 선언 후 -1로 채워준다.
반복문을 이용하여 배열 값이 -1이고 문자값과 알파벳값이 일치하면 배열 값을 문자열의 위치로 채운다.

소스코드-
word = list(input())
alpha = []

 

for i in range (97, 123):

    alpha.append(chr(i))

 

alpha2 = [-1] * 26

for i in range(0, len(word)):
    for j in range(0, 26):
        if(alpha[j] == word[i]):
            if(alpha2[j] == -1):
                alpha2[j] += i+1
for i in range(0, 26):
    print(alpha2[i], end=" ")