알고리즘 테스트/백준 문제풀이 및 해설

<백준 문제풀이: 10809번> 파이썬 - 알파벳 찾기

개발린이 2020. 11. 12. 15:40

 

사실 문제 자체는 쉬운 편이었다:

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을 출력하기 때문에 이에 매우 적절한 방법이라고 생각된다.