백준 알고리즘 10809번 알파벳 찾기 파이썬

박정연·2021년 6월 19일
0

알고리즘

목록 보기
1/1

단계별로 풀기 > 문자열 에 해당하는 문제이다.

이 문제에서 기억 해 둘 것 세 가지를 기록하려 한다.
1. 파이썬에서는 미리 등록 된 알파벳 상수를 제공한다. (import string)
2. 리스트 연산 정리
3. join 함수와 map 함수 이용법

1. 파이썬에서는 미리 등록 된 알파벳 상수를 제공한다. (import string)

ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ
일단 알파벳 하나하나 alpa 배열에 다 넣었었다.. ㅋ
import string
string.ascii_lowercase
하면 소문자 전체 string을 불러올 수 있다. 이 string을 잘라서 alpa list에 넣었다.

출처&더 많은 정보 :
https://programmers.co.kr/learn/courses/4008/lessons/12729

2. 리스트 연산 정리

직접 써 보기 전엔 내 것이 아니라는게 뼈저리게 느껴졌다.
이렇게 좋은 기능이 있는데 사용하자 ~

  • del mylist[2] : 인덱스 2에 있는 요소를 삭제한다.
  • "value" in mylist : "value"가 mylist에 있으면 True
  • "value" not in mylist : "value"가 mylist에 없으면 True
  • mylist.index("value") : "value"가 발견된 위치를 반환한다.
  • mylist.remove("value") : "value"가 나타나는 위치 찾아서 삭제

🙋‍♀️ 이 문제를 "value" in mylist, mylist.index("value")를 사용해서 쉽게 해결 할 수 있었다.

3. join 함수와 map 함수 이용법

join과 map은 js에서도 있었으니 정리 해 두면 공부 할 때 훨씬 좋겠지..
join은 list를 string으로 합쳐주는 함수다.
백준 제출을 위해서 list에 담았던 숫자들을 한 줄로 출력하고 싶었는데
그러기 위해서 join을 찾아 봤었다.

'구분자'.join(리스트 이름)

join 은 구분자를 기준으로 구분 된 string을 생성 해 준다.
이렇게 사용하라고 했는데 int로 이루어진 list를 바로 join할 수 없었다.
join은 string이 담긴 list만 바로 string으로 만들어 줄 수 있다.
그래서 map을 이용하여 일차적으로 int 요소를 str로 변환하고, join하여 한 줄로 합쳤다.

map(int, a)
s = ' '.join(map(str,array_string))

4. 해결 코드

import string
s = string.ascii_lowercase

alpa =[]
for i in s:
    alpa.append(i)

check_string = input()
array_string = []

for i in alpa:
    if i in check_string:
        array_string.append(check_string.index(i))
    else:
        array_string.append(-1)

print(" ".join(map(str, array_string)))

5. 문제 푼 후 느낀점

기초가 정말 중요하다.. 쉽다고 무시하지 말자.. 쉬운게 아니라 내 머리에 안들어온거다

profile
프론트엔드 개발자를 희망하는 대학생입니다 🦔 알고 및 TIL 올리겠습니다 🐌 느리고 모자라도 꾸준히 하겠습니다!

1개의 댓글

comment-user-thumbnail
2021년 7월 3일

https://docs.python.org/ko/3/library/string.html
string 모듈에 저장된 상수 document 💌

답글 달기