소소한 컴퓨터 이야기

서울에서 김서방 찾기

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

활동하기