좌충우돌 개발자의 길

백준 알고리즘 | 10809번 (알파벳 찾기) | 파이썬 본문

CODING TEST/백준

백준 알고리즘 | 10809번 (알파벳 찾기) | 파이썬

sustronaut 2021. 7. 11. 19:12

10809번 (알파벳 찾기)

  • 알파벳 소문자로만 이루어진 단어 S가 주어진다. 각각의 알파벳에 대해서, 단어에 포함되어 있는 경우에는 처음 등장하는 위치를, 포함되어 있지 않은 경우에는 -1을 출력하는 프로그램을 작성하시오.
  • 각각의 알파벳에 대해서, a가 처음 등장하는 위치, b가 처음 등장하는 위치, ... z가 처음 등장하는 위치를 공백으로 구분해서 출력한다.
  • 만약, 어떤 알파벳이 단어에 포함되어 있지 않다면 -1을 출력한다. 단어의 첫 번째 글자는 0번째 위치이고, 두 번째 글자는 1번째 위치이다.
arr = list(map(str, input()))  # apple
num = len(arr)

arr2 = ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m",
        "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"]

num2 = len(arr2)

num3 = 0

a = []

for i in range(0, num):
		#중복되는 알파벳 정리
    if(arr.count(arr[i]) > 1):
        a.append(arr[i])
        if(a.count(arr[i]) == 1):
            val = arr2.index(arr[i])  
            arr2[val] = i

		#중복되지 않은 알파벳 정리
    else:
        val = arr2.index(arr[i])  
        arr2[val] = i

#문자열이면 -1로 출력
for j in range(0, num2):
    if(str(type(arr2[j])) == "<class 'str'>"):
        arr2[j] = -1

#한줄로 배열 출력
for i in range(0, num2):
    print(arr2[i], end=' ')

새롭게 배운 것

  • type() : 자료형이 뭔지 출력