코딩 테스트/Python

[프로그래머스 코딩테스트 연습] 10. 서울에서 김서방 찾기

알밤바 2022. 2. 23. 09:00
728x90
반응형
 

코딩테스트 연습 - 서울에서 김서방 찾기

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

programmers.co.kr


1) 문제 설명

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

 

2) 제한 사항

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

3) 입출력 예

 


1. 문제 접근 방식

리스트 내 요소를 for문으로 돌려 Kim이라는 요소를 가지고 있는 인덱스를 찾아 인덱스 i를 출력하였다.

정말 단순하게 머릿속에 있는 것들을 그대로 가져와 코드를 실행하였다.

 

2. 플이코드

(1) 나의 풀이 코드

def solution(seoul):
    answer = ''
    for i in range(len(seoul)):
        if seoul[i] == "Kim":
            answer = '김서방은 {}에 있다'.format(i)
    return answer

해당 코드에서 주의해야 할 점 하나가 있다.

만약, Kim이라는 요소가 여러 개가 있다면 이 코드를 사용하기는 어렵다. 여러 개가 있으면 리스트 중 가장 마지막에 있는 Kim만 출력되기 때문이다.

즉, 요소가 단 하나라는 조건이 붙을 때만 사용해야 하는 코드이다.

 

(2) 다른 사람 풀이 코드

def findKim(seoul):
    return "김서방은 {}에 있다".format(seoul.index('Kim'))

굳이 for 문을 사용하지 않고 바로 ".index()"를 사용하여 인덱스를 찾아내었다.

리스트에 있는 요소의 인덱스 번호를 찾고 싶다면 ".index()"를 사용하면 된다.

 

3. 배운 점

".index()"에 대해 알게 되었다. 리스트에 있는 요소의 인덱스 번호를 찾을 때 유용하게 사용해보아야겠다.

그리고 내가 작성한 코드로 진행한다면 요소가 단 1개여야 한다는 것도 퍼실님께서 알려주셔서 알게 되었다. 이 부분도 신경써서 앞으로 코드를 짜야겠다.

728x90
반응형