[Programmers] 서울에서 김서방 찾기

2022. 10. 5. 15:06기록/Programmers

    목차

문제 설명

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

 

제한 사항

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

 

입출력 예

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

나의 문제 풀이

function solution(seoul) {
    return `김서방은 ${seoul.indexOf('Kim')}에 있다`;
}

- indexOf() 함수를 사용하여 주어진 배열에서 'Kim' 이라는 문자열과 일치하는 요소의 인덱스를 찾아냈다.


다른 사람의 문제 풀이

const solution = (arr) => `김서방은 ${arr.findIndex(s => s === 'Kim')}에 있다`;

- findIndex() 함수를 사용하여 배열의 요소들 중에서 'Kim' 문자열과 일치하는 요소의 인덱스를 찾아냈다.

 

Array.prototype.indexOf()

arr.indexOf(배열에서 찾을 요소)

배열에서 특정 값을 찾을 수 있는 첫 번째 인덱스를 반환한다.

만약 특정 값인 요소를 찾을 수 없으면 -1을 반환한다.

배열에서 특정 값으로 찾을 경우 사용한다.

 

Array.prototype.findIndex()

arr.findIndex(콜백함수)
arr.findIndex(요소 => 조건)

주어진 함수를 만족하는 배열의 첫 번째 요소에 대한 인덱스를 반환한다.

만약 만족하는 요소가 없으면 -1을 반환한다.

특정 값 보다는 특정 조건으로 찾을 경우 사용한다.

 

indexOf() 와 findIndex() 함수는 용도가 비슷하지만 사용 방식과 동작 원리가 다르다.

비슷한 용도로 사용되는 함수들의 차이점에 대해서 잘 알아두어야 겠다.