본문 바로가기

Python ◡̈/차근차근 Python

[백준 python] 10809 알파벳 찾기

 

www.acmicpc.net/problem/10809

 

10809번: 알파벳 찾기

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

www.acmicpc.net

 

 

<problem>

 

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

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

 

 

<input>

첫째 줄에 단어 S가 주어진다. 단어의 길이는 100을 넘지 않으며, 알파벳 소문자로만 이루어져 있다.

<output>

각각의 알파벳에 대해서, a가 처음 등장하는 위치, b가 처음 등장하는 위치, ... z가 처음 등장하는 위치를 공백으로 구분해서 출력한다.

만약, 어떤 알파벳이 단어에 포함되어 있지 않다면 -1을 출력한다. 단어의 첫 번째 글자는 0번째 위치이고, 두 번째 글자는 1번째 위치이다.

 


 

<example>

 


 

<solution ①> index( ) 함수 사용

 

입력받은 문자열을 list로 입력받아 string 에 저장

alphabet 배열에 알파벳 소문자들로 문자열 부여

 

for문 통해 alphabet 각각 입력받은 string에

  포함되어 있는 경우 index( ) 함수 사용해서 index 출력

  포함되지 않은 경우 -1 출력 

  ** end 속성 사용하여 공백으로 구분

 


 

ⓒ ⓞ ⓓ ⓔ

 


 

ⓣ ⓔ ⓢ 

 

 


 

<solution ②> find( ) 함수 사용 (다른 풀이 참고)

 

find( ) 함수

  - 문자열에서만 사용 가능

  - 문자의 위치를 찾아 인덱스 번호를 출력하고, 없는 경우에는 -1 return

  - 문자의 위치 찾기 때문에 chr( ) 사용하여 문자형으로 변환 후 찾기 수행해야 함

 

문자열 입력받아 string에 저장하는 것은 이전 코드와 같지만, 문자열에만 적용 가능하므로, 따로 list 형으로 변환은 하지 않는다.

 


 

ⓒ ⓞ ⓓ ⓔ

 


 

ⓣ ⓔ ⓢ 

 


 

ⓕ ⓘ ⓝ ⓐ ⓛ    ⓒ ⓞ ⓓ ⓔ