미소를뿌리는감자의 코딩
[백준 2024/02/05] 10809번 알파벳 찾기 본문
728x90
https://www.acmicpc.net/problem/10809
1. 접근 방법
모든 소문자들을 알파벳으로 key 값을 가지고, -1을 value로 가지는 dictionary를 선언하였다.
alphabet_dict = {ch: -1 for ch in string.ascii_lowercase}
한 줄로 적힌 코드 같은 경우 해석하기 애매할 수 있는데, for 앞의 부분을 떼서 보면 편하다. 즉,
for ch in string.ascii_lowercase:
ch: -1
이렇게 된 것이나 다름 없다.
따라서 모든 ascii_lowercase에 대해서,
a: -1
b:-1
c:-1
...
을 dictionary에 넣겠다는 말과 동일하다.
이렇게 넣고 난 후, input으로 받아온 str을 하나씩 읽기 시작하였다.
만약 abcd라면,
dict['a'] 를 하여 해당 key의 value를 알아본다. 만약 참조가 안되었다면 -1로 저장되어 있기에,
-1이라면, abcd.index(a)로 값을 변환시켜준다.
-1이 아니라 다른 값이라면, 이미 참조가 된 값
즉 앞에서 이미 index 선언이 완료된 key이므로
skip 해준다.
2. 코드
import string
alphabet_dict = {ch: -1 for ch in string.ascii_lowercase}
str_in = input()
for i in range(0, len(str_in),1):
if(alphabet_dict[str_in[i]]==-1):
alphabet_dict[str_in[i]] = i
values_str = " ".join(str(value) for value in alphabet_dict.values())
print(values_str)
728x90
'코딩 테스트 > 백준' 카테고리의 다른 글
[백준 2024/02/06] 1966번 프린터 큐 (0) | 2024.02.06 |
---|---|
[백준 2024/02/06] 9012번 괄호 - python ver. (0) | 2024.02.06 |
[백준 2024/02/01] b1271 엄청난 부자2 (0) | 2024.02.01 |
[백준 2024/01/30] 4999번 아! (1) | 2024.01.31 |
[백준 2024/01/29] 10814번 나이순 정렬 (1) | 2024.01.30 |