본문 바로가기

JavaScript/[프로그래머스] 문제 풀기

[1단계 ] 서울에서 김서방 찾기

문제 설명

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

제한 사항

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

입출력 예

seoul return
[Jane, Kim] "김서방은 1에 있다."

사용 메서드 및 속성

length Array 인스턴스의 속성으로 배열의 길이를 반환합니다.
indexOf() String 객체에서 주어진 값과 일치하는 첫 번째 인덱스를 반환합니다.

어떻게 풀어요?

문제에서 중요한 부분만 보면 쉽게 풀 수 있는 문제입니다.

 

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

 

입력되는 값은 String형 배열 seoul이고, 그 안에서 Kim은 오직 "1번" 나타나며 잘못된 값이 입력되는 경우는 없다고 하네요. 그럼 배열 크기에 상관없이 Kim은 한번만 나타나겠네요!

가장 간단하게 해결하는 방법은 for문을 seoul의 크기만큼 돌려서 'Kim'을 찾는 것입니다.

하지만 indexOf() 메소드를 사용하면 훨씬 더 짧은 코드로 해결할 수 있답니다.

트리스티의 답

length 속성을 사용해 쉽게 해결하는 방법

1
2
3
4
5
6
7
8
9
10
11
12
function solution(seoul) {
    var answer = '';
    
    for (var i = 0; i < seoul.length; i++) {
        if (seoul[i] == 'Kim') {
            answer = '김서방은 ' + i +'에 있다'
        }
    }
    
    return answer;
}
 
cs

 

indexOf() 메소드를 사용해서 짧게 해결하는 방법

1
2
3
4
5
6
function solution(seoul) {
    var answer = '';
    answer = '김서방은 ' + seoul.indexOf('Kim'+ '에 있다' 
    
    return answer;
}
cs

 

※ 잘못된 정보가 있거나 수정사항이 있다면 댓글로 남겨주세요!