s = input()
# 알파벳 소문자 리스트 생성
list = [chr(i) for i in range(ord('a'), ord('z') + 1)]
# 찾은 인덱스 값을 저장할 빈 리스트 생성
result = []
# 각 알파벳마다 제일 처음 등장하는 인덱스 찾기
for alp in list:
# 해당 알파벳이 문자열에 없으면 result 리스트에 -1 추가
if alp not in s:
result.append(-1)
# 해당 알파벳이 문자열에 있으면 위치 찾기
else:
for i in range(len(s)):
# 각 알파벳이 문자열의 해당 인덱스의 알파벳과 일치한다면
if alp == s[i]:
# 문자열의 인덱스를 result 리스트에 저장하고 다음 알파벳으로 넘어가기
result.append(i)
break
for j in result:
print(j, end = ' ')
리스트 안에 있는 요소들을 공백을 두고 하나씩 출력하는 방법이 생각나지 않아서 반복문을 사용해서 공백을 두고 출력했는데 join
을 이용하면 한 줄에 코드를 작성할 수 있다.
❗️ 이때 리스트는 문자열로만 구성되어 있어야 한다. 때문에
append
하는 요소들을 문자열로 변환해주는 과정을 거쳤다.
s = input()
# 알파벳 소문자 리스트 생성
list = [chr(i) for i in range(ord('a'), ord('z') + 1)]
# 찾은 인덱스 값을 저장할 빈 리스트 생성
result = []
# 각 알파벳마다 제일 처음 등장하는 인덱스 찾기
for alp in list:
# 해당 알파벳이 문자열에 없으면 result 리스트에 -1 추가
if alp not in s:
result.append('-1')
# 해당 알파벳이 문자열에 있으면 위치 찾기
else:
for i in range(len(s)):
# 각 알파벳이 문자열의 해당 인덱스의 알파벳과 일치한다면
if alp == s[i]:
# 문자열의 인덱스를 result 리스트에 저장하고 다음 알파벳으로 넘어가기
result.append(str(i))
break
print(' '.join(result))
result 리스트를 사용하지 않고 문제를 풀 수 있을 것 같아서 코드를 다시 고쳤다.
s = input()
# 알파벳 소문자 리스트 생성
list = [chr(i) for i in range(ord('a'), ord('z') + 1)]
# 각 알파벳마다 제일 처음 등장하는 인덱스 찾기
for alp in list:
# 해당 알파벳이 문자열에 없으면 result 리스트에 -1 추가
if alp not in s:
print(-1, end = ' ')
# 해당 알파벳이 문자열에 있으면 위치 찾기
else:
for i in range(len(s)):
# 각 알파벳이 문자열의 해당 인덱스의 알파벳과 일치한다면
if alp == s[i]:
# 문자열의 인덱스를 result 리스트에 저장하고 다음 알파벳으로 넘어가기
print(str(i), end = ' ')
break
print
의 end
옵션을 이용해서 공백을 두고 출력되도록 했다.