:ledger: 문제 설명

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

:one: 제한사항

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

:two: 입출력 예

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

:three: 프로그래머스에서 제공한 코드

처음 프로그래머스에서 작성된 코드는 아래와 같다.

function solution(seoul) {
  var answer = [];
  return answer;
}

:ledger: 문제 풀이

const solution = (seoul) => {
  let chk = seoul.indexOf("Kim");
  return `김서방은 ${chk}에 있다`;
};

:one: 함수 선언

  • 화살표 함수를 사용하여 seoul 매개변수를 받는다.

:two: 풀이

  • indexOf() 함수를 사용하여 문자열의 인덱스를 찾을 수 있다.
  • let chk = seoul.indexOf('Kim') 을 선언하여 몇 번째 배열에 ‘Kim’ 이 있는지 확인
  • return 김서방은 ${chk}에 있다 로 김서방은 1에 있다 리턴

:three: 결과 반환

  • let chk = seoul.indexOf('Jane') 선언할 경우 0 반환
  • let chk = seoul.indexOf('Kim') 선언할 경우 1 반환

:four: 실행

  • console.log(solution(["Jane", "Kim"])) 실행하면 “김서방은 1에 있다” 출력

:fire: 다른 사람의 풀이 참고

자바스크립트에서 특정 문자의 인덱스 값을 찾는 방법을 몰라 구글링했는데, 정석이었다!

// [41명] indexOf 함수를 사용한 문제 풀이
function findKim(seoul) {
  var idx = seoul.indexOf("Kim");

  return "김서방은 " + idx + "에 있다";
}

// [6명] indexOf 함수를 사용하여 변수를 생략한 문제 풀이
function findKim(seoul) {
  return `김서방은 ${seoul.indexOf("Kim")}에 있다`;
}

출처: 프로그래머스 코딩 테스트 연습, https://school.programmers.co.kr/learn/challenges