[PYTHON] 10809 알파벳 찾기 - 인덱스찾기/.find()/.index()/아스키코드

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

     

    10809번: 알파벳 찾기

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

    www.acmicpc.net

     

    solution

    import sys
    str = sys.stdin.readline().strip()
    alphablet = 'abcdefghijklmnopqrstuvwxyz'
    for i in alphablet :
      print(str.find(i), end = ' ') # 공백을 구분하여 결과를 반환함
    • 입력받은 문자열에 알파벳 순서대로 검색하여 index를 반환한다.
    • str.find(i): 'baekjoon'에서 a를 찾아서 a가 'baekjoon'에서 어느 위치에 있는지 반환한다.
      • 만약 str에 없으면 find는 -1를 반환한다.
      • .index()는 찾는 값이 없으면 Error를 반환하기 때문에 .find()을 사용하였다.

    2023.01.18 추가 코드를 풀이했습니다.
    알파벳을 문자열로 나열하는 것이 아니라 알파벳의 아스키코드 값을 이용해 문제를 풀었습니다.

    solution - 아스키코드

    import sys
    str = sys.stdin.readline().strip()
    # 알파벳 a~Z까지 아스키코드값을 리스트에 저장하고
    alphablet = list(range(97,123))
    for i in alphablet :
      # 아스키코드값을 문자로 변환하고 인덱스 값을 반환한다.
      print(str.find(chr(i)), end = ' ')

    기본 문법 정리

    .find(x)

    • x의 첫 번째 위치 를 반환, 없으면 -1를 반환함.
    print('apple'.find('p')) # 1
    print('apple'.find('-k')) # -1

    .index(x)

    • x의 첫 번째 위치 를 반환, 없으면 ValueError
    print('apple'.index('p')) # 1 
    print('apple'.index('-k')) # ValueError

    댓글