2023.04.05 풀이
arr=[-1]*26
s=list(input())
for i in range(len(s)):
if arr[ord(s[i])-97]==-1:
arr[ord(s[i])-97]=i
print(*arr)
- 알파벳 개수 만큼의 배열에 글자의 번째 수를 저장.
- import sys 문으로는 배열 넘치는 에러남.
- sys.stdin.readline 에 대한 개념이 부족했던 것 같음
다른 풀이
n = input()
alpha = list(range(97, 123))
for i in alpha:
print(n.find(chr(i)))
- find 함수는 어떤 찾는 문자가 문자열 안에서 첫 번째에 위치한 순서를 숫자로 출력.
만일 찾는 문자가 문자열 안에 없는 경우에는 -1을 출력.
- a~z를 숫자로 바꾼 범위의 배열을 alpha에 저장,
alpha를 순서대로 돌면서 n(입력문자열)을 숫자로 바꾼 것에 있으면 그 위치 출력. 없으면 -1 출력됨.
S = list(input())
c = 'abcdefghijklmnopqrstuvwxyz'
for i in c:
if i in S:
print(S.index(i), end =' ')
else:
print(-1, end=' ')
S = input()
for x in 'abcdefghijklmnopqrstuvwxyz':
print(S.find(x), end = ' ')
check point
- sys.stdin.readline 은 \n 까지 입력받기 때문에 배열넘치거나 런타임에러가 날 수 있음
- \n 을 제외하고 입력받기 위해서 rstrip() 사용.
- find() : 첫번째 위치 출력 함수, 없으면 -1 출력.