김서방 찾기 알고리즘

Sangmin Na·2021년 5월 23일
0

Algorithm

목록 보기
1/1
post-thumbnail

개선을 위한 정보 혹은 틀린 정보가 있다면 자유롭게 코멘트를 작성해주세요 :D

김서방 찾기

문제

문제 설명

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

제한 사항

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

입출력 예

seoulreturn
["Jane", "Kim]1

문제 풀이

나의 풀이

function solution(seoul) {
    for(let i = 0; i < seoul.length; i++){
        if("Kim" === seoul[i]){
            var answer = "김서방은 " + i + "에 있다"
            return answer;
        };
    };
};
  • Seoul은 배열로 이루어져 있다. 그러므로 배열을 읽을 수 있는 for문을 사용했다.
  • for(let i = 0; i < seoul.length; i++): seoul의 배열의 0번째 부터 시작하여 이 배열의 길이만큼 읽는다.
  • if("Kim" === seoul[i]: i 번째를 읽었을때 String "Kim"이 출력되면 if문을 읽고 return값을 반환하고 if문을 종료한다.

다른 사람의 문제 풀이

function solution(seoul) {
		var solution = "김서방은 " + seoul.indexOf('Kim') + "에 있다";
    return solution
};
  • 프로그래머스에 있는 다른 사람의 풀이이다.
  • Array의 Method중 하나인 indexOf()를 사용하여 문제를 해결하였다.
  • 다음은 indexOf() Method의 정의이다.
  • The indexOf() method returns the first index at which a given element can be found in the array, or -1 if it is not present.
  • 예를 들어, seoul.indexOf('Kim')은 배열 안에서 처음으로 'Kim'이 위치한 index(배열의 위치)를 찾아 결과물을 return하게 된다. 만약, 'Kim'이란 String이 배열 안에서 존재하지 않는다면 -1을 반환한다.

느낀점

  • 문제를 푸는 방법은 다양하다. (이 문제는 for문, indexOf() Method를 사용할 수 있었음)
  • 어느 방법으로 푸는 것이 가장 효율적인지 고민을 더 해봐야 할 것 같다.
  • 처음부터 완벽한 프로그래머는 없다고 생각한다. 시행착오를 거쳐 자신의 코딩을 발전시켜 나가는 것이 좋은 프로그래머라고 생각한다.
  • 알고리즘 문제 풀이를 통하여 자바스크립트 언어의 Grammar와 Method들을 갈고 닦을 수 있을 것 같다.

Reference

0개의 댓글