스파르타 (React_6기) 본캠프

2024. 08. 21. (알고리즘 - 서울에서 김서방찾기)

cha123hein 2024. 8. 21. 20:46

★ 문제

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

(seoul은 길이 1 이상, 1000 이하인 배열입니다.

seoul의 원소는 길이 1 이상, 20 이하인 문자열입니다.

"Kim"은 반드시 seoul 안에 포함되어 있습니다.)

★ 문제 해결 과정

1. 서울이라는 배열안의 객체 길이만큼 반복문을 돌린다.

2. 그 객체 중 "Kim"이라는 객체가 있다면 그 배열의 순서를 출력한다.

3. "김서방은" + i + "에 있다"를 출력하여 김서방을 찾는다.

 

다른 사람의  풀이를 보니 indexOf를 사용하여 간단하게 풀어냈는데,

Array 인스턴스의 indexOf() 메서드는 배열에서 주어진 요소를 찾을 수 있는 첫 번째 인덱스를 반환하고, 찾을 수 없는 경우 -1을 반환합니다.

<indexOf를 사용한 다른 사람의 풀이>

function findKim(seoul){
  var idx = seoul.indexOf('Kim');

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

★ 제출한 문제 답안

function solution(seoul) {
    for (var i = 0; i < seoul.length; i++) {
        if (seoul[i] === "Kim") {
            return "김서방은 " + i + "에 있다";
        }
    }
}