서울에서 김서방 찾기
by Cori문제
String형 배열 seoul의 element중 "Kim"의 위치 x를 찾아, "김서방은 x에 있다"는 String을 반환하는 함수, solution을 완성하세요. seoul에 "Kim"은 오직 한 번만 나타나며, 잘못된 값이 입력되는 경우는 없습니다.
제한사항
· seoul은 길이 1 이상, 1000 이하인 배열입니다.
· seoul의 원소는 길이 1 이상, 20 이하인 문자열입니다.
· 'Kim'은 반드시 seoul 안에 포함되어 있습니다.
입출력 예
seoul | return |
['Jane', 'Kim'] | '김서방은 1에 있다' |
풀이
1. Me
def solution(seoul):
answer = ''
for i, data in enumerate(seoul):
if data == 'Kim':
answer ='김서방은 {}에 있다'.format(i)
return answer
enumerate 함수를 이용하여, 리스트의 원소가 'Kim'인 인덱스를 얻어, 출력에 활용하였다.
2. Others
def findKim(seoul):
return "김서방은 {}에 있다".format(seoul.index('Kim'))
index 함수를 사용하여 for문을 사용하지 않고 값을 찾았다.
자료 정리
1. find() 함수 vs index() 함수
0) 공통점
-> 두 함수 모두 변수.find(찾을 문자), 변수.index(찾을 문자) 형태로 사용하며, 변수에 위치한 문자열 중 괄호 안에 넣은
특정 문자가 처음 위치한 자리의 값을 찾을 수 있음
1) find()
-> 찾는 문자가 없는 경우에 -1을 출력하며, 문자열에서만 사용이 가능하다.
2) index()
-> 찾는 문자가 없는 경우에 ValueError가 발생하며, 문자열, 리스트, 튜플에서 사용 가능하다. (dictionary x)
3) 시작점, 종료점 지정
-> 두 함수 모두 괄호 안에 (찾을 문자열, 시작점, 종료점) 순서로 입력함으로써 문자를 찾는 시작점과 종료점을 지정할 수 있다.
string_s = 'abcdefgh'
string_s.find('x') # -1 반환
string_s.index('x') # ValueError
# 문자열 중 2번째 위치부터 처음 'e'가 위치한 자리
string_s.find('e', 2)
# 문자열 1~4번째 사이에 문자 'b'가 위치한 자리
string_s.index('b', 1, 4)
'CS > Coding Test' 카테고리의 다른 글
문자열 내 p와 y의 개수 (0) | 2021.08.21 |
---|---|
문자열 다루기 기본 (0) | 2021.08.21 |
수박수박수박수박수 ? (0) | 2021.08.21 |
시저 암호 (0) | 2021.08.21 |
약수의 합 (0) | 2021.08.21 |
블로그의 정보
코딩하는 오리
Cori