[BOJ/백준-Python]10809번 - 알파벳 찾기

10809번 - 알파벳 찾기

문제

알파벳 소문자로만 이루어진 단어 S가 주어진다. 각각의 알파벳에 대해서, 단어에 포함되어 있는 경우에는 처음 등장하는 위치를, 포함되어 있지 않은 경우에는 -1을 출력하는 프로그램을 작성하시오.

입력

첫째 줄에 단어 S가 주어진다. 단어의 길이는 100을 넘지 않으며, 알파벳 소문자로만 이루어져 있다.

출력

각각의 알파벳에 대해서, a가 처음 등장하는 위치, b가 처음 등장하는 위치, … z가 처음 등장하는 위치를 공백으로 구분해서 출력한다.

만약, 어떤 알파벳이 단어에 포함되어 있지 않다면 -1을 출력한다. 단어의 첫 번째 글자는 0번째 위치이고, 두 번째 글자는 1번째 위치이다.

예제 입력 1

baekjoon

예제 출력 1

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

해결할 방법을 생각해보자.💡

지난번 11654번 문제에서 아스키 코드에 대해서 알아봤었다. 우리가 알고 있는 알파벳 a부터 z는 아스키코드 97~122이다. 따라서 chr()find()를 사용해서 풀어줄 수 있는 문제다.

  • chr를 사용해서 a부터 z가 97~122인지 확인

    image

    image

처음으로 문자열을 입력받아주자.

S = input()

그리고 위에서 우리는 알파벳 소문자의 아스키코드 범위를 알았다. 그래서 반복문을 사용할 때 해당 숫자의 범위를 사용하자.

for i in range(97, 123):

그리고 아주 간단하다. chr함수와 find메소드를 사용하면 해당 값이 없으면 -1을 반환하고, 존재한다면 해당 인덱스의 번호를 출력해준다. 추가적으로 출력 예제를 보면, 다음줄이 아닌 사이에 공백으로 구분이 되어있으므로 print 문에 end속성을 넣어주면 예제와 같이 나오게 만들 수 있다.

	print(S.find(chr(i)), end=" ")

코드💻

S = input()

for i in range(97, 123):
    print(S.find(chr(i)), end=" ")

해결 로그

문제 푼 날짜 체크
2022-05-24
   
   
   
   

2022

[web]jQuery 복습 3

1 분 소요

[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!

[web]jQuery 복습 2

13 분 소요

[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!

[web]jQuery 복습 1

14 분 소요

[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!

[web]JavaScript 정리4

5 분 소요

[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!

[web]JavaScript 정리3

10 분 소요

[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!

[web]JavaScript 정리2

7 분 소요

[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!

[web]JavaScript 정리1

8 분 소요

[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!

[web]CSS 기초 정리

11 분 소요

[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!

[web]HTML 기초 정리

8 분 소요

[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!

[Pandas]pandas 연습

3 분 소요

[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!

맨 위로 이동 ↑

2021

[Python기초]module

1 분 소요

[Noitce] 고쳐야하거나 틀린 것이 있으면 말씀해주세요!

맨 위로 이동 ↑