CodingTest/BeakJoon

[10809] 알파벳 찾기

the.Dev.Cat 2026. 3. 10. 13:08

백준 Bronze II | 10809 | Python | 문제 링크


문제 설명

알파벳 소문자로만 이루어진 단어 S가 주어진다. 각 알파벳에 대해, 단어에 포함되어 있는 경우에는 처음 등장하는 위치를, 포함되어 있지 않은 경우에는 -1을 출력한다.

입력

첫째 줄에 단어 S가 주어진다. 단어의 길이는 100보다 작거나 같으며, 알파벳 소문자로만 이루어져 있다.

출력

각 알파벳에 대해서, a가 처음 등장하는 위치, b가 처음 등장하는 위치, ... z가 처음 등장하는 위치를 공백으로 구분해서 출력한다. 위치는 0부터 시작한다. 단어에 포함되어 있지 않은 경우에는 -1을 출력한다.

입출력 예

입력 출력
baekjoon 1 0 -1 -1 7 -1 -1 -1 -1 4 3 -1 -1 6 5 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1

나의 풀이

import sys
input = sys.stdin.readline

s = input().strip()
eng = "abcdefghijklmnopqrstuvwxyz"

for c in eng:
    if c in s:
        print(s.index(c), end=" ")
    else:
        print(-1, end=" ")

풀이 설명

eng에 a~z를 순서대로 담고, 각 알파벳이 s에 존재하는지 순회하며 확인한다.

  • c in s — 문자열 포함 여부 확인
  • s.index(c) — 해당 문자가 처음 등장하는 인덱스 반환 (0-based)
  • end=" " — 줄바꿈 대신 공백으로 구분해 한 줄에 출력