Algorithm

[Algorithm] 서울에서 김서방 찾기

sod0l 2024. 9. 10. 11:44

1. 문제 개요

  • 문제 제목: "Kim"의 위치 찾기
  • 문제 설명: 'seoul'이라는 배열에서 "Kim"이 있는 위치를 찾아 "김서방은 x에 있다"라는 문장으로 반환하는 문제이다. "Kim" 배열에 한 번만 등장하며, 잘못된 값이 입력되지 않음.

 

 

2. 문제 해결 전략

  • 단계 1: `indexOf` 메소드를 사용하여 배열 'seoul'에서 "Kim"의 위치(index)를 찾는다.
  • 단계 2: 찾은 위치(index)를 템플릿 리터럴을 사용하여 "김서방은 x에 있다"형식의 문자열로 변환한다.
  • 단계 3: 변환된 문자열을 반환하여 문제를 해결한다.

 

 

3. 코드 분석

function solution(seoul) {
    // "Kim"의 위치를 찾는다.
    var index = seoul.indexOf("Kim");

    // 찾은 위치를 템플릿 리터럴로 반환한다.
    return `김서방은 ${index}에 있다`;
}

3-1) 메소드 및 함수 설명

  • 메소드/함수 이름: `indexOf()`
    • 용도: 배열에서 특정 값의 첫 번째 위치(index)를 찾는다.
    • 설명: indexOf 메소드는 배열 내에서 지정한 값("Kim")의 첫 번째 위치를 반환한다. 값이 없을 경우 `1`을 반환한다.
    • 사용 예: `seoul.indexOf("Kim")`은 "Kim"이 배열에서 몇 번째 위치에 있는지 알려준다.
  • 메소드/함수 이름: 템플릿 리터럴
    • 용도: 변수를 포함한 문자열을 쉽게 작성한다.
    • 설명: 템플릿 리터럴을 사용하면 변수 값을 `${}`로 삽입하여 문자열을 만들 수 있다.
    • 사용 예: `김서방 ${index}에 있다`는 `index` 값을 문자열에 포함시킨다.

 

3-2) 코드 분석 부분

  • 중요 코드 부분:
var index = seoul.indexOf("Kim")

 

  • 설명: 이 부분은 배열 'seoul'에서 "Kim"이 위치한 인덱스를 찾는 코드이다. `indexOf` 메소드를 사용하여 "Kim"의 첫 번째 등장 위치를 찾는다.
  • 장점: `indexOf` 메소드를 사용하면 배열에서 특정 값을 효율적으로 찾을 수 있으며, 그 값을 기준으로 다른 동작을 쉽게 수행할 수 있다.
  • 중요 코드 부분:
return `김서방은 ${index}에 있다`;

 

  • 설명: 이 부분은 템플릿 리터럴을 사용하여 문자열을 구성하고, "Kim"의 위치를 문자열에 포함시켜 반환하는 코드이다.
  • 장점: 템플릿 리터럴을 사용하면 복잡한 문자열 조합을 간결하고 직관적으로 처리할 수 있다.

 

4) 코드의 역할 및 활용

4-1) 코드의 역할

  • 이 코드는 `indexOf` 메소드를 사용하여 배열 'seoul'에서 "Kim"의 위치를 찾고, 그 위치를 템플릿 리터럴로 문장화하여 반환하는 역할을 한다. 문제에서 요구하는 문자열 형식을 맞추기 위해 템플릿 리터럴을 사용하여 간결하게 해결한다.

 

4-2) 적용 예시

  • 이 코드는 배열에서 특정 값을 찾아서 그 위치를 반환하는 문제 해결에 사용될 수 있다. 예를 들어, 사람들의 이름이 담긴 배열에서 특정 사람의 위치를 찾아 안내하는 프로그램을 만들거나, 물건 리스트에서 특정 물건의 위치를 찾는 데 응용할 수 있다.