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=' ')
댓글남기기