본문 바로가기
카테고리 없음

프로그래머스 서울에서 김서방 찾기, 문자열 다루기

by 제이엠_ 2022. 2. 4.

1번 문제 : 서울에서 김서방 찾기(indexOf 와 for반복문)

[문제 설명]

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

 

[제한 사항]

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

 

[입출력 예]

출처 : 프로그래머스

[나의 풀이]

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

indexOf를 활용하여 Kim이라는 항목의 index값을 구해서 템플릿리터럴을 활용하여 answer에 할당한다.

 

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

for 반복문을 활용하여 seoul[i]에 Kim이 있다면 인덱스값이 정답이다.

 

 

2번 문제 : 문자열 다루기 기본

[문제 설명]

문자열 s의 길이가 4 혹은 6이고, 숫자로만 구성돼있는지 확인해주는 함수, solution을 완성하세요. 예를 들어 s가 "a234"이면 False를 리턴하고 "1234"라면 True를 리턴하면 됩니다.

 

[제한 사항]

  • s는 길이 1 이상, 길이 8 이하인 문자열입니다.

[입출력 예]

출처 : 프로그래머스

[나의 풀이]

function solution(s) {
    if( s.length !== 4 && s.length !== 6 ) {
        return false
    }
    
    for( let i = 0; i < s.length; i++ ) {
        if( isNaN(s[i]) ) {
            return false;
        }
    }
    return true;
}

가장 먼저 문자 길이가 4와 6이 아닌 것들은 예외처리를 해준다. 그 다음에 반복문으로 s의 요소들을 isNaN으로 검수하여 true값이 나오면 false를 출력하게 하고 그 외는 true를 출력하게 한다.

 

* isNaN 매서드, 이게 NaN값인지 아닌지 체크

 

isNaN(123) : false
isNaN("abc") : true
isNaN("0/0") : true
isNaN(Number(0/0)) : true

댓글