[알고리즘] 백준 10809 : 알파벳 찾기 - B2

eternal moment·2023년 4월 5일
0

2023.04.05 풀이

# import sys
# input=sys.stdin.readline

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 출력됨.

check point

  • sys.stdin.readline 은 \n 까지 입력받기 때문에 배열넘치거나 런타임에러가 날 수 있음
  • \n 을 제외하고 입력받기 위해서 rstrip() 사용.
  • find() : 첫번째 위치 출력 함수, 없으면 -1 출력.

0개의 댓글