Hey Tech
문자열처리 #백준10809 #알파벳 찾기 | 파이썬 풀이 본문
728x90
반응형
📚 문제
링크: https://www.acmicpc.net/problem/10809
💡 접근법
입력받는 단어의 좌측부터 알파벳부터 차례로 접근하여 몇 번째 알파벳인지
확인하여 정답으로 출력할 리스트를 업데이트하면 됩니다.
저는 a부터 z까지 모든 소문자 알파벳을 문자열로 받아오기 위해
파이썬 string 라이브러리 내 ascii_lowercase 함수를 활용하였습니다.
그리고, 문자열 탐색 결과를 저장할 리스트 원소는 모두 -1로 초기화하였습니다.
입력받는 단어의 좌측 알파벳부터 반복문을 통해 하나씩 접근하며,
해당 알파벳이 몇 번째 인덱스인지 확인하고 정답용 리스트를 업데이트하였습니다.
특히 알파벳이 처음 등장한 위치를 저장해야 하기 때문에,
1회 이상 단어에서 등장한 알파벳은 2번 처리하지 않도록 조건문을 달았습니다.
💻 코드
# https://www.acmicpc.net/problem/10809
import string
alphabet = string.ascii_lowercase # abcdef...wxyz
input_string = input() # 단어 입력받기
answer = [-1]*len(alphabet)
for idx in range(len(input_string)):
# 알파벳이 한 번 이상 나왔을 경우
if answer[alphabet.index(input_string[idx])] == -1:
answer[alphabet.index(input_string[idx])] = idx
# 정답 출력
for ans in answer:
print(ans, end = ' ')
👨💻 파이썬 파일(Github)
https://github.com/park-gb/algorithm-problem-solving/blob/main/string/boj_10809.py
포스팅 내용에 오류가 있거나 조언/지적/피드백 환영입니다!😄
아래에 👇👇👇 댓글 남겨주시면 감사드리겠습니다.
그럼 오늘도 즐겁고 건강한 하루 보내시길 바랍니다 :)
고맙습니다.
728x90
반응형
'알고리즘 > 문제풀이' 카테고리의 다른 글
문자열처리 #백준1427 #소트인사이드 | 파이썬 풀이 (0) | 2021.10.11 |
---|---|
문자열처리 #백준1157 #단어 공부 | 파이썬 풀이 (0) | 2021.10.09 |
문자열처리 #백준1152 #단어의 개수 | 파이썬 풀이 (0) | 2021.10.07 |
문자열처리 #백준11720 #숫자의 합 | 파이썬 풀이 (0) | 2021.10.03 |
BFS알고리즘 #프로그래머스 #가장 먼 노드 | 파이썬 풀이 (2) | 2021.08.27 |