데이터분석 기록일지

문제풀이/프로그래머스

[프로그래머스 Lv.1] 서울에서 김서방 찾기 (Python)

야하루 2024. 7. 9. 14:57

코딩테스트 연습 - 서울에서 김서방 찾기 | 프로그래머스 스쿨 (programmers.co.kr)

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

문제

String형 배열 seoul의 element중 "Kim"의 위치 x를 찾아, "김서방은 x에 있다"는 String을 반환하는 함수, solution을 완성하세요. seoul에 "Kim"은 오직 한 번만 나타나며 잘못된 값이 입력되는 경우는 없습니다.

 

 

 

제한 사항

seoul은 길이 1 이상, 1000 이하인 배열입니다.
seoul의 원소는 길이 1 이상, 20 이하인 문자열입니다.
"Kim"은 반드시 seoul 안에 포함되어 있습니다.

 

 

 

입출력 예
seoul return
["Jane", "Kim"] "김서방은 1에 있다"

 

 

 


풀이

 

아이디어: 그냥 "Kim"이 위치하는 인덱스를 찾아내면 된다.

 

# 풀이1
def solution(seoul):
    x = seoul.index("Kim")
    answer = '김서방은 '+str(x)+'에 있다'
    return answer

-> 리스트의 메소드인 index() 함수를 이용해서 "Kim"이 위치하는 인덱스를 가져왔다.

 

 

# 풀이2
def solution(seoul):
    index = 0
    for i in seoul:
        if i == "Kim":
            break
        index += 1
    return f"김서방은 {index}에 있다"

-> 이번에는 seoul 리스트를 순회하면서 "Kim"이 몇번째에 나타나는지 구하는 방법이다. 

     Kim을 찾으면 그 즉시 중단하고, Kim이 아니면 index에 1을 더해준다.

 

 

 

# 풀이3
def solution(seoul):
    for index, value in enumerate(seoul):
        if value == "Kim":
            return f"김서방은 {index}에 있다"

-> enumerate() 함수를 이용하여 푼 방법이다.  value로 원하는 요소를 찾고, index로 원하는 위치를 찾아주었다.

 

 

 

 enumerate()

enumerate() 함수는 이터러블의 요소와 해당 요소의 인덱스를 함께 반환해준다.