개선을 위한 정보 혹은 틀린 정보가 있다면 자유롭게 코멘트를 작성해주세요 :D
김서방 찾기
문제
문제 설명
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) {
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