한 걸음씩 기록하며

[프로그래머스 코딩테스트] 서울에서 김서방 찾기 본문

알고리즘 & 코딩테스트

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

Haksae 2022. 1. 16. 23:50

[서울에서 김서방 찾기]

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

 

⛏제한 조건

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

 

📁 입출력 예시

👉🏻  답안

1) for문 이용

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

2) indexOf 메서드 이용

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

📑  간단한 설명

.indexOf("value", "position) : 문자열에서 value와 같은 값을 찾아내는 함수. position은 시작 인덱스

가장 먼저 나오는 value를 찾고 값을 리턴해준다. 

 

💪🏻 공부하면 좋을 답안

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

- 익명 함수를 선언하고 findIndex 메서드를 사용했다. 개인적으로는 아래와 같이 indexOf를 쓰면 더 좋을 것 같다.

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

 

.find, findIndex, indexOf는  간략하게 다른 글에 정리해보려한다.

Comments