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 형으로 변환은 하지 않는다.
ⓒ ⓞ ⓓ ⓔ
ⓣ ⓔ ⓢ ⓣ
ⓕ ⓘ ⓝ ⓐ ⓛ ⓒ ⓞ ⓓ ⓔ
'Python ◡̈ > 차근차근 Python' 카테고리의 다른 글
[백준 python] 1157 단어 공부 (0) | 2021.05.08 |
---|---|
[백준 python] 2675 문자열 반복 (0) | 2021.05.07 |
[백준 python] 11720 숫자의 합 (0) | 2021.05.07 |
[백준 python] 11654 아스키코드 (0) | 2021.05.07 |
[백준 python] 1065 한수 (0) | 2021.05.06 |