티스토리 뷰

Etc/Algorithm & Solving

[Python] 백준 10809

charming-l 2022. 1. 28. 04:33

[백준 10809]

알파벳 소문자로만 이루어진 단어 S가 주어진다. 각각의 알파벳에 대해서, 단어에 포함되어 있는 경우에는 처음 등장하는 위치를, 포함되어 있지 않은 경우에는 -1을 출력하는 프로그램을 작성하시오.

 

 

[내 코드]

dic = {}
for i in range(97, 123):
    dic[i] = -1;
s = list(input())
for i in range(0, len(s)):
    if (dic[ord(s[i])] == -1): 
        dic[ord(s[i])] = i
for i in range(97, 123):
    print(dic[i], end =" ")

음...내 코드는 확실히 코드가 귀찮아 보인다....

다른 분의 코드를 보니, find() 함수만 이용하면 쉽게 풀리는 문제였다.  확실히 알고 넘어가자!

 

 

 

find( )

s.find(찾을 문자)
s.find(찾을 문자, 시작 Index)
s.find(찾을 문자, 시작 Index, 끝 Index)

 

  • find()는 검색시, 문자의 대소문자를 구분
  • 존재하지 않는 문자는 -1, 그 외에는 해당 글자의 인덱스 출력
    • find()와 비슷한 index()에서는 존재하지 않는 문자의 경우 오류를 출력

 

 

 

참고 자료

https://codetorial.net/tips_and_examples/string_find_index.html

https://blockdmask.tistory.com/569

'Etc > Algorithm & Solving' 카테고리의 다른 글

[Algorithm] 이진 탐색 (Binary Search)  (0) 2022.02.26
[Python] 백준 1181  (0) 2022.02.04
[Python] 백준 10814 #빠른 입력 받기  (0) 2022.01.30
[Python] 백준 2908  (0) 2022.01.27
[Python] 백준 2920  (0) 2022.01.27
Comments