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() : 자료형이 뭔지 출력