백준 알고리즘 10809번 알파벳 찾기, 파이썬
이번 문제는 백준 알고리즘의 10809번 알파벳 찾기 문제이다.
역시 파이썬으로 풀었다.
이 문제는 생각 할 시간이 좀 필요했다.
내 생각대로 문제를 분해해보면,
#생각1. 알파벳 소문자로 이루어진 단어 S가 주어진다.
#생각2. 이 단어 S에 각 알파벳이 처음 등장하는 위치를 숫자로 출력하고, 포함되지 않는 알파벳은 -1로 출력한다.
#생각3. 리스트를 알파벳 개수만큼 만들고 -1로 초기화한다.
#생각4. 반복문을 돌리면서 처음 나온 알파벳을 인덱스만큼 더해준다. 첫글자는 0번째 위치이다.
#생각5. 중복되는 문자가 있는 경우, 리스트의 값이 -1이 아닌경우 그냥 넘어가는 것을 조건으로 한다.
위처럼 생각하고 구현하니 좀 간단하게 나오긴 했다.
lst = list(-1 for i in range(0,26))
string = input()
count = 0
for i in string:
if lst[ord(i)-97] != -1: #중복 문자 제거
count = count + 1
continue
lst[ord(i)-97] = count #아스키 코드를 생각해서 그 알파벳이 몇번짼지 파악
count = count + 1
for i in lst:
print(i, end = ' ')
그냥 내가 좀 오래걸렸던 부분은, 리스트에 알파벳이 몇 번 인덱슨지 연결 해 주는 거였는데,
갑자기 아스키코드가 생각이 나서, 그걸 이용해서 그 위치에다 넣었다.
다른 사람들은 어떻게 풀었는지 한번 검색 해 봐야겠다.
문제 출처
https://www.acmicpc.net/problem/10809
'코딩테스트 > 백준 알고리즘 풀이' 카테고리의 다른 글
[백준 알고리즘/python] 백준 1157번 단어 공부, 파이썬 (0) | 2020.03.19 |
---|---|
[백준 알고리즘/python] 백준 2675번 문자열 반복, 파이썬 (0) | 2020.03.19 |
[백준 알고리즘/python] 백준 11720번 숫자의 합, 파이썬 (0) | 2020.03.18 |
[백준 알고리즘/python] 백준 1065번 한수, 파이썬 (0) | 2020.03.16 |
백준 | 4673번 셀프넘버, 파이썬 (0) | 2020.03.16 |
댓글