https://www.acmicpc.net/problem/10809
1. 내가 작성한 코드
vo_ca = list(input()) #소문자로 주어짐
arr = [] #a~z list
ind_list = []
for i in range(97,123): #a~z까지 들어있는 list 생성
arr.append(chr(i))
for j in arr:
if j in vo_ca:
ind_list.insert(arr.index(j), vo_ca.index(j))
else :
ind_list.insert(arr.index(j), -1)
for ind in ind_list:
print(ind, end=" ")
이게 정녕 브론즈5의 난이도가 맞는가 고민하면서 풀었는데,
구글링해보니 find 라는 함수를 이용하면 되는 거였네 살면서 첨들어보는 함수,,
역시 기본기가 제일 중요해 ㅠ
2. find()
S = input()
for x in 'abcdefghijklmnopqrstuvwxyz':
print(S.find(x), end = ' ')
find 함수는 문자열 안에 첫 번째로 위치한 순서를 출력하고, 없는 경우 -1 을 출력하는 함수이다.
index() 함수와의 차이점 : index는 문자가 없을 경우 valueerror를 출력하지만, find는 -1을 출력한다.
3. 정리
- find() 함수를 통해 위치 출력 가능 (없으면 -1)
- 소문자의 아스키코드는 97~ , 대문자의 아스키코드는 65~
- insert(a,b) : a위치에 b삽입
- S.index(a) : S 리스트에 있는 원소 a의 인덱스 반환
'🔅코딩테스트 공부🔅 > ❗백준' 카테고리의 다른 글
[백준] 1157번 단어 공부(with python) (0) | 2023.01.20 |
---|---|
[백준] 2675번 문자열 반복(with python) (0) | 2023.01.20 |
[백준] 11720번 숫자의 합(with python) (0) | 2023.01.20 |
[백준] 11654번 아스키 코드(with python) (0) | 2023.01.20 |
[백준] 4673번 셀프 넘버(with python) (0) | 2023.01.19 |
댓글