백준 10809번 파이썬
문제링크: 백준 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을 빼 해당 값을 리스트에 넣어주었다.
Author And Source
이 문제에 관하여(백준 10809번 파이썬), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@msu122005/백준-10809번-파이썬저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)