DATA101
문자열처리 #백준10809 #알파벳 찾기 | 파이썬 풀이 본문
📚 문제
링크: https://www.acmicpc.net/problem/10809
10809번: 알파벳 찾기
각각의 알파벳에 대해서, a가 처음 등장하는 위치, b가 처음 등장하는 위치, ... z가 처음 등장하는 위치를 공백으로 구분해서 출력한다. 만약, 어떤 알파벳이 단어에 포함되어 있지 않다면 -1을 출
www.acmicpc.net
💡 접근법
입력받는 단어의 좌측부터 알파벳부터 차례로 접근하여 몇 번째 알파벳인지
확인하여 정답으로 출력할 리스트를 업데이트하면 됩니다.
저는 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
GitHub - park-gb/algorithm-problem-solving: 알고리즘 문제 풀이 및 정리
알고리즘 문제 풀이 및 정리. Contribute to park-gb/algorithm-problem-solving development by creating an account on GitHub.
github.com
포스팅 내용에 오류가 있거나 조언/지적/피드백 환영입니다!😄
아래에 👇👇👇 댓글 남겨주시면 감사드리겠습니다.
그럼 오늘도 즐겁고 건강한 하루 보내시길 바랍니다 :)
고맙습니다.
'알고리즘 > 문제풀이' 카테고리의 다른 글
문자열처리 #백준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 |