[ 백준 문제 10809 / 파이썬 ] 알파벳 찾기
2023. 2. 9. 19:31ㆍ백준/파이썬
알파벳 소문자로만 이루어진 단어 S가 주어진다.
각각의 알파벳에 대해서, 단어에 포함되어 있는 경우에는
처음 등장하는 위치를,
포함되어 있지 않은 경우에는 -1을 출력하는 프로그램을 작성하시오.
아스키 코드 반환
ord(문자)
문자 => 숫자
아스키 코드를 반환해줍니다.
print(ord("A"))
=> 65
chr(숫자)
숫자 => 문자
숫자에 맞는 아스키 코드를 반환합니다.
print(chr(65))
=> A
인덱스, 위치를 찾아주는 함수
변수.find(찾을 문자)
변수.index(찾을 문자)
정답 1) find() 이용
S = input()
for i in range(ord('a'), ord('z')+1):
if chr(i) in S:
print(S.find(chr(i)), end = ' ')
else:
print("-1", end = ' ')
baekjoon
1 0 -1 -1 2 -1 -1 -1 -1 4 3 -1 -1 7 5 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
정답 2) index() 이용
S = input()
for i in range(ord('a'), ord('z')+1):
if chr(i) in S:
print(S.index(chr(i)), end = ' ')
else:
print("-1", end = ' ')
baekjoon
1 0 -1 -1 2 -1 -1 -1 -1 4 3 -1 -1 7 5 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
그런데 잠깐! find()와 index()의 차이는 뭘까요?
find(), index() 차이점
find()
찾는 문자가 없는 경우에 -1을 출력합니다.
index()
찾는 문자가 없는 경우에 Value에러가 발생합니다.
이 특징을 이용하면 이 문제에서
find()를 쓰면 if문을 쓸 필요가 없다는 사실을 알 수 있습니다.
index() 이용 => 에러 발생
S = input()
for i in range(ord('a'), ord('z')+1):
print(S.index(chr(i)), end = ' ')
정답 3) find() 이용
S = input()
for i in range(ord('a'), ord('z')+1):
print(S.find(chr(i)), end = ' ')
'백준 > 파이썬' 카테고리의 다른 글
[ 백준 문제 1157 / 파이썬 ] 단어 공부 (0) | 2023.02.10 |
---|---|
[ 백준 문제 2675 / 파이썬 ] 문자열 반복 (0) | 2023.02.09 |
[ 백준 문제 11720 / 파이썬 ] 숫자의 합 (0) | 2023.02.09 |
[ 백준 문제 11654 / 파이썬 ] 아스키 코드 (1) | 2023.02.09 |
[ 백준 문제 1110 / 파이썬 ] 더하기 사이클 (0) | 2023.02.09 |