티스토리 뷰

<문제 링크>

 

10809번: 알파벳 찾기

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

www.acmicpc.net

 

<문제 풀이>

S = input()

ans = []
for i in range(97, 123):
    a_to_z = chr(i)
    try:
        print(S.index(a_to_z), end=' ')
    except:
        print(-1, end=' ')

 

10809 입출력 예시

*key point: 아스키코드를 문자로 변환해주는 chr 함수를 이용하면 a ~ z 알파벳을 쉽게 반복문에 사용할 수 있다. 각 알파벳이 주어진 문자열의 어느 위치에 있는지는 index 함수를 통해 알 수 있다.

 

 

문제를 풀고 다른 사람들의 풀이를 보니 index 함수보다 더 이 문제에 적합한 find라는 함수가 있음을 알 수 있었다. index 함수의 경우 찾는 값이 없으면 에러가 발생하지만, find 함수는 -1을 반환하기 때문이다. 최대한 간단하게 풀이한 결과는 아래와 같다.

S = input()

for alphabet in range(97, 123):
    print(S.find(chr(alphabet)), end=' ')

 

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함