본문 바로가기

알고리즘 공부/백준 > Python3

[백준 파이썬] #10809: 알파벳 찾기

https://www.acmicpc.net/problem/10809

 

10809번: 알파벳 찾기

각각의 알파벳에 대해서, a가 처음 등장하는 위치, b가 처음 등장하는 위치, ... z가 처음 등장하는 위치를 공백으로 구분해서 출력한다. 만약, 어떤 알파벳이 단어에 포함되어 있지 않다면 -1을 출

www.acmicpc.net

 

[정답]

S=input()

S_list=list(S)

E_list=[]

for i in range(26):

    E_list.append(-1)

for k in range(len(S_list)):

    if E_list[int(ord(S_list[k]))-97]!=-1:
        continue
    E_list[int(ord(S_list[k]))-97]=k
for i in range(26):
    print(E_list[i],'',end='')


이 문제에서 주목할 코드

E_list[int(ord(S_list[k]))-97]=k 

97이 의미하는 것은 아스키코드로 'a'=97이다.

ord(S_list[k])는 S_list[k]를 아스키코드로 바꾸어주는 과정.

S_list[k]가 'b'였다면, ord(S_list[k])의 출력값은 '98'이다.

int(ord(S_list[k]))=98인데, 여기다가 97을 빼니 1이다.

즉, E_list[1]=k를 넣으라는 의미이다.