백준 알고리즘 문제 풀이 [Python]

[백준/Python] 10809번 알파벳 찾기 (문자열)

wlalsu_u 2023. 2. 23. 06:48

10809번 : 알파벳 찾기 문제

 

 

알파벳 소문자로만 이루어진 단어 S가 주어진다.

 

각각의 알파벳에 대해서, 단어에 포함되어 있는 경우에는 처음 등장하는 위치를,

포함되어 있지 않은 경우에는 -1을 출력하는 프로그램을 작성하시오.

 

 

 

 

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

 

10809번: 알파벳 찾기

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

www.acmicpc.net

 

 


 

풀이 코드

 

word = input()
alphabet = "abcdefghijklmnopqrstuvwxyz"

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

 

 

 

word = input()

 

 

- 소문자로 이루어진 문자열 s 를 입력받음

 

- input() 은 한 줄의 문자열만 입력받을 수 있음

 

 

 

alphabet = "abcdefghijklmnopqrstuvwxyz"

 

 

- a 부터 z 까지의 알파벳을 문자열 alphabet 에 저장

 

 

+ 참고 )

- 파이썬의 문자열은 내부적으로 리스트와 같이 처리
- 따라서 문자열은 여러개의 문자가 합쳐진 리스트로 볼 수 있음 (인덱싱, 슬라이싱 가능)

 

 

 

for i in alphabet:

 

 

- 'for 변수 in 문자열' 형태로, in 뒤에 오는 데이터로는 리스트, 튜플, 문자열 사용

 

- a 부터 z 까지의 문자를 포함하는 문자열 alphabet의 문자를 하나씩 순회

 

 

 

print(word.find(i), end=' ')

 

 

- find() 함수를 사용하여 문자의 해당 위치를 반환

 

- end = ' ' 는 구분자 역할로, 첫 번째 출력문과 두 번째 출력문 사이에 빈 칸을 출력

 

 

[find 함수]

- find 함수는 찾고자 하는 문자(열)가 존재하는지 확인하고,
존재한다면 해당 위치 index를 반환, 존재하지 않는다면 -1을 반환

string.find(찾을 문자)
string.find(찾을 문자, 시작 index)    # 시작 인덱스를 생략하면 0부터 시작
string.find(찾을 문자, 시작 index, 끝 index)   # 마지막 인덱스를 생략하면 문자열 마지막까지

 

 

 

 

 

 

 

 

 

나동빈 '이것이 코딩 테스트다 with 파이썬' 책을 참고하여 작성하였습니다.

https://www.youtube.com/watch?v=m-9pAwq1o3w&list=PLRx0vPvlEmdAghTr5mXQxGpHjWqSz0dgC