◯문제 링크◯
◯코드 미리보기◯
Test_str = input()
alphabet_dict = {}
for i in range(97, 123):
alphabet_dict[chr(i)] = -1
for i in range(len(Test_str)):
if alphabet_dict[Test_str[i]] == -1:
alphabet_dict[Test_str[i]] = i
Ans = list(alphabet_dict.values())
for i in range(len(Ans)):
print(Ans[i],end=" ")
◯설명◯
Test_str = input()
alphabet_dict = {}
먼저 입력한 문장을 받는 변수이다.
그 뒤에 따라오는 코드는 딕셔너리 선언을 위한 코드이다. 이름에서 알 수 있듯이, 알파벳과 숫자를 같이 정리하기 위한 딕셔너리이다.
for i in range(97, 123):
alphabet_dict[chr(i)] = -1
먼저 아스키 코드를 사용해서 모든 알파벳을 key로 넣어주면서, value를 -1로 할당해 준다.
for i in range(len(Test_str)):
if alphabet_dict[Test_str[i]] == -1:
alphabet_dict[Test_str[i]] = i
다음은 해당 코드를 활용하기 위한 코드이다.
for문은 문장의 길이만큼 반복을 해준다.
if문과 그 아래 코드는 입력받은 문장에 해당하는 알파벳을 key로 입력했을 때 value가 -1이면 value를 자릿값으로 교체하기 위한 코드이다.
if문을 활용한 이유는, 단어가 여러번 사용되는 경우에는 맨 처음 오는 자릿수만 저장한다고 했기 때문이다. if문의 조건을 충족한다는 것은 그 이전에는 같은 문자가 없었다는 의미이다.
Ans = list(alphabet_dict.values())
for i in range(len(Ans)):
print(Ans[i],end=" ")
다음은 이렇게 정리가 끝난 value값들을 모두 출력해주기 위한 작업이다.
.values()함수를 활용하면 원하는 딕셔너리의 value값들을 list형태로 저장할 수 있다. 다만 이것은 완전한 list는 아니다. 그래서 list로서 사용을 하기 위해서는 list함수로 변환이 이루어져야한다.
for문은 처리가 완료된 value값들을 한줄로 출력해주기 위한 코드이다. print의 end값을 공백 한칸으로 바꾸었다.
◯배운 것◯
⩥딕셔너리의 key와 value는 list형태로 꺼내 올 수 있다. 다만 온전한 list로 사용하려면 list로 변환해주어야 한다.
⩥딕셔너리에 원소를 추가하려면 (딕셔너리 이름)[key] = (value)의 형태로 코드를 짜면 된다.
'python > 문제' 카테고리의 다른 글
[엘리스] list.sort()사용할 때 None이 반환되는 경우 (0) | 2022.07.01 |
---|---|
[백준/2231]분해합 (0) | 2021.10.28 |
[백준,2675]문자열반복 (0) | 2021.03.04 |
[백준, 11654] 아스키코드 (0) | 2021.03.04 |
[백준,1011]Fly me to the Alpha Centauri (0) | 2021.02.23 |