Baekjoon 문제 풀기 (10809번 : 알파벳 찾기) Python

10809번 : 알파벳 찾기

1. 문제읽기


인덱스 위치 찾기

첫번째로는 알파벳 a부터 z까지 어떻게 나타낼 것이냐를 고민했고, 두번째로는 인덱스 위치를 어떻게 찾을 것이냐를 고민했다.
아스키코드를 써서 반복문을 돌려 빈 리스트에 넣어주는 것으로 첫번째를 해결했다.
index함수를 이용하여 두번째를 해결했다.

2. 제출 코드


word = list(input())
alphabet = []

for i in range(97, 123):
    alphabet.append(chr(i))

for a in alphabet:
    if a in word:
        print(word.index(a), end=' ')
    else:
        print(-1, end=' ')

3. 공부할 것


list(range())

range함수는 for문이랑 자주 써서 list에서 바로 쓸 수 있는지 몰랐다..
위의 코드에서 for문으로 alphabet 리스트를 만들어주는 작업을 간단하게 list(range(97, 123))으로 나타내 줄 수 있다.

find()

원하는 문자가 몇 번째에 있는지 찾아주는 함수.

이 문제에서는 find함수를 이용하면 편하게 풀 수 있다.
값을 찾지 못하면 -1을 반환하기 때문에 if문을 사용할 필요가 없어진다.
index함수와 헷갈릴 수 있기 때문에 표를 만들어 정리해야겠다.
index함수와 기능은 동일하지만 아래와 같은 차이가 있다.
index함수를 자주 썼는데, 찾는 문자가 없는 경우 에러가 나는 것 때문에 보통 find함수를 더 자주 쓰는 것 같다.
그래도 리스트에서는 index함수밖에 쓸 수 없으니 예외처리를 잘 해서 사용해야겠다.

  find() index()
찾는 문자가 없는 경우 -1 출력 ValueError
자료형 문자열 문자열, 리스트, 튜플

따라서 위의 내용을 적용시켜 코드를 이쁘게 바꿔주면 아래와 같이 수정할 수 있다.

word = input()
alphabet = (list(range(97, 123)))

for a in alphabet:
    print(word.find(chr(a)), end=' ')

댓글남기기