[Python] 백준 10809 | 알파벳 찾기

heige·2023년 12월 1일
0

BOJ

목록 보기
6/46
post-thumbnail

문제

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

풀이

방법 1

S = input()
li = [-1 for i in range(26)]
al = 'abcdefghijklmnopqrstuvwxyz'
for i in range (len(S)) :
    for j in range (len(al)) :
        if S[i] == al[j] and li[j] != -1 :
            pass
        if S[i] == al[j] and li[j] == -1:
            li[j] = i
print(*li)

이건 내가 푼 거.
함수 이용 안 하려고 하다보니 좀 생각이 필요했다.

방법 2

s = input()
x = 'abcdefghijklmnopqrstuvwxyz'
for i in x:
    print(s.find(i), end=' ')

이것은 숏코딩 참고한 것.
find() 함수를 이용할 수도 있다.
아래 개념을 참고해보자

💡

find()

  • 어떠한 문자 'x'가 첫번째 위치한 자리를 출력한다.
  • find함수는 찾는 값이 없을 때 -1을 출력한다
  • 문자열을 찾을 수 있는 변수는 문자열만 사용이 가능하다. 리스트, 튜플, 딕셔너리 자료형에서는 find 함수를 사용할 수 없다. 만일 사용하게 되면 AttributeError 에러가 발생한다.

find 함수를 활용하는 문제였네!

sep과 end 를 이용한 출력

sep= ' '

이 옵션을 이용하게 되면 print문의 출력문들 사이에 해당하는 내용을 넣을 수 있다. 기본 값으로는 공백이 들어가 있으며 이를 사용해 원하는 문자를 입력할 수 있다.

end= ' '

이 옵션의 경우 print 문을 이용해 출력을 완료한 뒤의 내용을 수정할 수 있다. 기본 값으로는 개행(\n)이 들어가 있으며 이를 사용해 개행을 없애거나 원하는 문자를 입력할 수 있다.

print("1-1칸","1-2칸","1-3칸",end = "")
print("2-1칸","2-2칸","2-3칸",sep = "")
1-1칸 1-2칸 1-3칸2-1칸2-2칸2-3칸
print("1-1칸","1-2칸","1-3칸",end = "**end 입니다** \n")
print("2-1칸","2-2칸","2-3칸",sep = "**sep입니다**")
1-1칸 1-2칸 1-3칸**end 입니다** 
2-1칸**sep입니다**2-2칸**sep입니다**2-3칸

위와 같은 방식으로 활용 가능 ~

profile
웹 백엔드와 클라우드 정복을 위해 탄탄한 기반을 쌓아가고 있는 예비개발자입니다. 'IT You Up'은 'Eat You Up'이라는 표현에서 비롯되어, IT 지식을 끝까지 먹어치운다는 담고 있습니다.

0개의 댓글