문제링크: 백준 10809번(알파벳 찾기)
s = input()
dic = {}
count = 0
for i in s:
if i in dic.values():
count += 1
continue
dic[count] = i
count += 1
index = {}
for i in range(97, 123):
index[chr(i)] = -1
for key, value in dic.items():
for key2, value2 in index.items():
if value == key2:
index[key2] = key
continue
for i in index.values():
print(i, end = " ")
입력받은 문자열을 바탕으로 dic이라는 딕셔너리에 인덱스를 key로, 알파벳을 value로 넣어줬고,
a~z를 key로 -1을 value로 갖는 딕셔너리 index를 하나 더 만들어 줬다.
이후 dic의 value와 index 딕셔너리의 key가 일치하면 index의 key의 value로 dic의 key값을 넣어 출력했다.
딕셔너리를 사용하지 않고 풀 수 있고, 코드가 복잡해서 간소화 할 필요가 있다고 생각했다.
s = input()
alpha = [-1]*26
for i in range(len(s)):
if alpha[ord(s[i]) - 97] != -1:
continue
else:
alpha[ord(s[i]) - 97] = i
for i in alpha:
print(i, end = ' ')
알파벳의 수 만큼 리스트를 생성했고, 입력 문자열을 아스키코드로 변환하여 소문자 a의 아스키 코드값인 97을 빼 해당 값을 리스트에 넣어주었다.