반응형
내 풀이
첫째 줄 단어 S
각각의 알파벳에 대해서 a가 처음 등장하는 위치, b가 처음 등장하는 위치 z가 처음 등장하는 위치를 공백으로 구분하여 출력
어떤 알파벡이 단어에 포함되어 있지 않다면 -1를 출력한다.
S = input()
alpha = 'abcdefghijklmnopqrstuvwxyz'
results = [-1] * 26
for i in range(len(S)):
results[alpha.index(S[i])] = S.index(S[i])
print(*results)
내가 하고자 한 것은 S를 순회해서 인덱스의 순서를 result에 알파벳순서대로 넣는 것이다.
결과: 정답, 하지만 다시 공부할 필요있음.
또 다른 풀이
S = list(input())
c = 'abcdefghijklmnopqrstuvwxyz'
for i in c:
if i in S:
print(S.index(i), end =' ')
else:
print(-1, end=' ')
[백준] 10809 파이썬 (알파벳 찾기)
for문을 이용하여 a부터 z까지 S에 그 알바벳이 있는지 검사한다.있으면 인덱스를 출력하고없으면 -1을 출력한다.find 함수는 어떤 찾는 문자가 문자열 안에서 첫 번째에 위치한 순서를 숫자로 출
velog.io
내가 푼풀이와는 다르게 인덱스 찾기의 방법을 또 다르게 한 것이 있다. 실시간으로 계산한 것을 출력하는 방식이다. 더 간단한 풀이로 보여진다.
고찰
다른 풀이를 쓴 사람이 알고 있고 내가 모르고 있는 것은 무엇이 있을까?
if i in S는 해당 알파벳이 S에 존재하는지 확인하는 코드다. 나는 이것을 몰랐다.
또한 코드가 여러 번 덮어쓰는 방식으로 작성되어 있어 직관적이지 않은데 코드를 여러번 덮혀쓰지 않는 방법을 잘 모르고 있다.
반응형
'Coding Test (코딩 테스트)' 카테고리의 다른 글
코딩테스트 18일차(2025.02.06) - 백준1260번(DFS와 BFS) (0) | 2025.02.06 |
---|---|
코딩테스트 18일차(2025.02.06) - 백준1929번(소수 구하기) (0) | 2025.02.06 |
코딩테스트 16일차(2025.02.02) - 백준11720번(숫자의 합) (0) | 2025.02.02 |
코딩테스트 16일차(2025.02.02) - 백준11654번(아스키 코드) (0) | 2025.02.02 |
코딩테스트 15일차(2025.01.31) - 백준9086번(문자열) (0) | 2025.01.31 |