본문 바로가기
IT/알고리즘

1일 1알고리즘 - #8

by Sungjun_ 2020. 5. 15.

문제

https://www.acmicpc.net/problem/10809

 

10809번: 알파벳 찾기

각각의 알파벳에 대해서, a가 처음 등장하는 위치, b가 처음 등장하는 위치, ... z가 처음 등장하는 위치를 공백으로 구분해서 출력한다. 만약, 어떤 알파벳이 단어에 포함되어 있지 않다면 -1을 출

www.acmicpc.net

문제는 위 사이트를 참고해주세요.

 


풀이

x = list(map(str, input()))  # 입력 받은 단어를 배열로 저장합니다. ex) back -> ['b', 'a', 'c', 'k']
strDic = {'a': -1, 'b': -1, 'c': -1, 'd': -1, 'e': -1, 'f': -1, 'g': -1, 'h': -1, 'i': -1, 'j': -1, 'k': -1, 'l': -1,
          'm': -1, 'n': -1, 'o': -1, 'p': -1, 'q': -1, 'r': -1, 's': -1, 't': -1, 'u': -1, 'v': -1, 'w': -1, 'x': -1,
          'y': -1, 'z': -1}  # 딕셔너리 안에 각 알파벳을 키로 주고 기본 value를 -1로합니다.
for i in x:
    xIndex = x.index(i)  # xIndex에 for문이 돌때마다 알파벳이 위치한 인덱스 값을 저장합니다. x.index(c) ==> 2
    if i in strDic:  # 입력한 단어의 알파벳이 strDic에 있을 때
        strDic[i] = xIndex  # 그 알파벳에 해당하는 키의 value를 인덱스 값으로 바꿔줍니다.
for n in strDic.values():  # n에 strDic에 있는 value의 값을 저장합니다.
    print(n, end=" ")  # value 출력

 

풀이는 주석을 확인해주세요.

다 풀고 알았는데 find() 함수를 사용하면 찾는 문자나 문자열이 없으면 -1을 리턴한다고 합니다.

저처럼 알파벳 하나하나 -1로 지정하지 않으셔도 됩니다.. ㅠ


결과

결과 화면

'IT > 알고리즘' 카테고리의 다른 글

1일 1알고리즘 - #10  (0) 2020.05.16
1일 1알고리즘 - #9  (0) 2020.05.15
1일 1알고리즘 - #7  (0) 2020.05.15
1일 1알고리즘 - #6  (0) 2020.05.15
1일 1알고리즘 - #5  (0) 2020.05.14

댓글