BOJ_10809 알파벳 찾기
- TOC {:toc}
이 글은 백준 온라인 저지의 10809번 문제를 파이썬(Python)으로 풀이한 것을 모아놓은 글입니다.
일종의 연습 기록이며 제가 정답을 받은 코드와 참고할만한 다른 코드를 같이 기록합니다. 필요한 경우 코드에 대한 해설을 기록합니다만 코드는 통과했어도 해설은 틀릴 수 있기 때문에 가볍게 참고해주시길 부탁드립니다. 피드백은 편하신 방법으로 자유롭게 주시면 감사하겠습니다.
2021.04.23
메모리 | 시간 | 코드 길이 |
---|---|---|
28776 KB | 72 ms | 96 B |
W = input()
Al = "abcdefghijklmnopqrstuvwxyz"
print(*[W.index(i) if i in W else -1 for i in Al])
참고 답안
# 풀이 1-1
W = input()
alpha = "abcdefghijklmnopqrstuvwxyz"
for i in alpha:
print(W.find(i), end = ' ')
# 풀이 1-2
# map(chr, range(97, 123))
# 97 ~ 122까지 숫자를 chr로 변환하면
# 소문자 a ~ z까지의 리스트를 생성한다.
# 각 문자를 다시 input().find로 매핑한 뒤
# 언 패킹 해서 출력한다.
print(*map(input().find, map(chr, range(97, 123))))
# 풀이 1-3
# 0 ~ 26까지 순회하면서
# i에 97을 더해 문자로 변환한 뒤 (a ~ z)
# 이를 input().find()에 넣어 반환한 값으로 리스트를 구성한다.
# 언 패킹 해서 출력한다.
print(*[input().find(chr(i + 97)) for i in range(26)])
아이디어 & 풀이
a ~ z까지의 알파벳 목록을 다음과 같은 방법으로 만들 수 있다. 순회 가능한 자료형이어야 한다.
- a ~ z까지 하나의 문자열로 작성한다.
range
와map()
으로 97(a) ~ 123(z)을 문자(chr
)로 매핑한다.- 반복문으로
i
값을 순회하면서i + 97
을 문자로 변환한다.
알파벳 각 문자를 순회하면서 해당 알파벳이 입력받은 단어에 포함되어있는지 확인한다.
문자를 찾는 데는 find()
를 사용한다. find()
는 찾는 값이 없을 때 -1
을 반환한다.
- 문자열에서만 사용할 수 있다.
- str.find() by Python Documentation
- 파이썬 find( ), index( ) 비교 / 인덱스, 위치를 찾는 함수(Python) by 영지공지
-
ps-python