https://www.acmicpc.net/problem/10809
[정답]
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를 넣으라는 의미이다.
'알고리즘 공부 > 백준 > Python3' 카테고리의 다른 글
[백준 파이썬] #10171: 고양이 (0) | 2020.11.13 |
---|---|
[백준 파이썬] #2908: 상수 (0) | 2020.11.11 |
[백준 파이썬] #2675: 문자열 반복 (0) | 2020.11.11 |
[백준 파이썬] #1712: 손익분기점 (0) | 2020.11.10 |
[백준 파이썬] #1152: 단어의 개수 (0) | 2020.11.10 |