본문 바로가기
코딩테스트/PYTHON

백준 10809번 파이썬 풀이

by aibattle 2023. 3. 18.
728x90
반응형

우선 정답 코드이다.

 

s = str(input())
alphabets = [-1] * 26 # 알파벳별로 해당 알파벳이 처음 등장하는 위치를 저장할 리스트 초기화

for i in range(len(s)):
    idx = ord(s[i]) - ord('a')
    if alphabets[idx] == -1: # 해당 알파벳이 처음 등장한 경우에만 위치 저장
        alphabets[idx] = i
결과 = [str(x) for x in alphabets] # 각 요소를 문자열로 변환
print(' '.join(결과)) # 공백을 기준으로 문자열을 합침

 

 

ord라는 함수를 사용하는데,

이때 a가 65~ b가 66.. 이렇게 된다면

모든 과정에서 ord['a'] 인 65를 빼면 0~26의 숫자를 얻을 수 있고

처음 만든 26개의 리스트의 자리에 원한는 값을 넣을 수 있습니다

 

728x90
반응형

댓글