jyamethyst21 님의 블로그

백준 10809번 - 알파벳 찾기 (PYTHON 풀이) (with. append, join, extend 개념 설명까지) 본문

CODING 💻

백준 10809번 - 알파벳 찾기 (PYTHON 풀이) (with. append, join, extend 개념 설명까지)

jyamethyst21 2025. 3. 2. 23:23

1) 문제

 

 

2) 풀이

a="abcdefghijklmnopqrstuvwxyz"
b=input()
c=[]

for i in a:
    if i in b:
        c.append(b.index(i))
    else:
        c.append(-1)
print(" ".join(map(str,c)))

 

알파벳 a~z 중에서 입력받은 단어가 어느 위치에 있는지 알아보는 문제이다. 만약 없다면 -1 을 출력하게 만들면 된다.

알파벳을 담은 변수 a를 하나씩 돌면서 입력 받은 단어와 일치하는 게 있으면 그 위치의 인덱스(index 내장 함수 활용)를 출력하고 그렇지 않으면 -1을 출력하면 되는 간단한 코드를 작성해보았다

여기서 주의할 점은 출력 예시를 보면 띄어쓰기를 기준으로 출력하고 있기 때문에 join 함수를 활용 해야 한다는 것이다.

그렇다면 join 함수만 사용하면 되는데 왜 map 함수를 사용하는 거지? 하고 궁금한 분들이 계실 것 같아 덧붙이자면, join 함수는 문자열만 받기 때문에 정수가 들어있는 c 리스트를 str(문자열) 형태로 변환한 후 출력해야 원하는 값을 출력하게 된다.

 

 

⭐️ 추가 사항 ⭐️

1) append : 파이썬 리스트에서 맨 뒤에 값을 추가하고자 할 때 사용하는 함수

아래 예시를 보면 쉽게 이해할 수 있다. a라는 리스트를 선언하고 append 함수를 사용해 리스트의 맨 끝에 값을 추가할 수 있다.

a=[]
a.append(1)
a.append(10000)

print(a)

결과) [1, 10000]

 

1-1) extend : 파이썬 리스트에서 맨 뒤에 값을 추가할 때 사용하는데 리스트 연결이 자연스럽다.

오늘 풀어본 문제에서는 다루지 않았지만 append의 개념을 설명할 때 늘 짝꿍처럼 등장하는 extend도 예제를 통해 가볍게 설명해보려 한다. 둘의 차이는 리스트에 리스트를 추가할 때 확연하게 나타난다.

 

결과값을 살펴보면 append는 추가할 리스트의 각 요소를 부자연스럽게 이어주는 것을 볼 수 있고, extend는 자연스럽게 이어주고 있음을 확인할 수 있다. append는 리스트 자체를 붙인다. extend는 각 요소를 자연스럽게 붙인다. 라고 이해하면 될 것 같다.

a=[1,2,3,4,5]
a.append([6,7]) 

b=[1,2,3,4,5]
b.extend([6,7])

print(a) # append  함수 결과 출력
print(b) # extend 함수 결과 출력

결과) [1, 2, 3, 4, 5, [6, 7]]

         [1, 2, 3, 4, 5, 6, 7]

 

2) join : 리스트에 존재하는 개별 요소들을 특정 구분자를 통해 붙이거나 값을 합칠 때 주로 사용되는 함수이다.

파이썬 문제를 풀면서 은근 사용하지 않을 것 같으면서도 꽤나 많이 사용한 함수인 것 같다.

설명 그대로 각 리스트 요소들을 어떠한 조건으로 붙일 때 주로 사용한다. 예시로 설명을 해보겠다.

 

결과값을 보면 손쉽게 이해할 수 있을 것이다. join의 사용방법은 '구분자'.join(변형할 값) 형태로 작성하면 되고 이를 활용하면 반복문 없이도 띄어쓰기를 할 수 있는 등 다양한 형태로 출력할 수 있다.

a=['a','b','c']
print('*'.join(a)) # *로 구분
print(' '.join(a)) # 띄어쓰기로 구분
print('\n'.join(a)) # 줄바꿈으로 구분

결과) a*b*c

         a b c

         a

         b

         c