https://www.acmicpc.net/problem/10809
solution
import sys
str = sys.stdin.readline().strip()
alphablet = 'abcdefghijklmnopqrstuvwxyz'
for i in alphablet :
print(str.find(i), end = ' ') # 공백을 구분하여 결과를 반환함
- 입력받은 문자열에 알파벳 순서대로 검색하여 index를 반환한다.
- str.find(i): 'baekjoon'에서 a를 찾아서 a가 'baekjoon'에서 어느 위치에 있는지 반환한다.
- 만약 str에 없으면 find는 -1를 반환한다.
- .index()는 찾는 값이 없으면 Error를 반환하기 때문에 .find()을 사용하였다.
2023.01.18 추가 코드를 풀이했습니다.
알파벳을 문자열로 나열하는 것이 아니라 알파벳의 아스키코드 값을 이용해 문제를 풀었습니다.
solution - 아스키코드
import sys
str = sys.stdin.readline().strip()
# 알파벳 a~Z까지 아스키코드값을 리스트에 저장하고
alphablet = list(range(97,123))
for i in alphablet :
# 아스키코드값을 문자로 변환하고 인덱스 값을 반환한다.
print(str.find(chr(i)), end = ' ')
기본 문법 정리
.find(x)
- x의 첫 번째 위치 를 반환, 없으면 -1를 반환함.
print('apple'.find('p')) # 1
print('apple'.find('-k')) # -1
.index(x)
- x의 첫 번째 위치 를 반환, 없으면 ValueError
print('apple'.index('p')) # 1
print('apple'.index('-k')) # ValueError
'algorithm > 백준' 카테고리의 다른 글
[PYTHON] 15552 빠른 A+B (0) | 2023.01.18 |
---|---|
[PYTHON] 1110 더하기사이클 while (0) | 2023.01.18 |
[PYTHON] 11654 아스키코드 - 문자를 아스키 코드로, 아스키 코드를 문자로 (0) | 2023.01.16 |
[PYTHON] 11720 숫자의 합 (0) | 2023.01.16 |
[PYTHON]4673 셀프넘버 set()/중복제거/차집합/합집합/교집합 (0) | 2023.01.15 |
댓글