사실 문제 자체는 쉬운 편이었다:
S = input()
alphabet_list = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z']
num_list = []
for i in range(len(alphabet_list)):
if alphabet_list[i] in S:
num_list.append(str(S.index(alphabet_list[i])))
else:
num_list.append('-1')
print(' '.join(num_list))
alphabet_list 안에 a 부터 z 까지 다 넣어주고, S 문자열을 일일이 검사를 한 후 그에 따라 있으면 그것의 인덱스를, 없으면 -1을 문자열로 num_list에 추가해준다. 마지막에 ' '.join(num_list)를 통해 리스트의 내용들 예제 출력과 같이 출력해준다.
※ 다른 사람의 풀이
word = input()
alphabet = list(range(97,123))
for x in alphabet :
print(word.find(chr(x)))
다른 사람의 풀이의 경우, 아스키코드를 통해서 푼 사람도 있었다. 애초에 find 함수가 있으면 인덱스를 출력하고 없으면 -1을 출력하기 때문에 이에 매우 적절한 방법이라고 생각된다.
'알고리즘 테스트 > 백준 문제풀이 및 해설' 카테고리의 다른 글
<백준 문제풀이: 1157번> 파이썬 - 단어 공부 (0) | 2020.11.14 |
---|---|
<백준 문제풀이: 2675번> 파이썬 - 문자열 반복 (0) | 2020.11.13 |
<백준 문제풀이: 11720번> 파이썬 - 숫자의 합 (0) | 2020.11.11 |
<백준 문제풀이: 11654번> 파이썬 - 아스키 코드 (0) | 2020.11.10 |
<백준 문제풀이: 15596번> 파이썬 - 정수 N개의 합 (0) | 2020.11.08 |