✏️기록하는 즐거움
article thumbnail

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

|  제출

function solution(s) {
    let numArr = ["zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"];
    let answer = s;

    for(let i = 0; i < numArr.length; i++) {
        let arr = answer.split(numArr[i]);
        answer = arr.join(i);
    }

    return Number(answer);
}

 

|  풀이과정

문자열로 표현된 부분을 알맞은 숫자로 변경하여 전체 숫자를 리턴하는 문제이다.

 

1) 숫자에 맞는 문자열 표현식을 numArr 이라는 배열에 담는다.

2) numArr의 각 요소를 기준으로 split 한 뒤, 배열의 index로 join을 해주면 된다.

 

문자열 s가 "one4seveneight" 일 때, for문 안에서 arr과 answer를 콘솔에 출력해보면 다음과 같다.

for(let i = 0; i < numArr.length; i++) {
    let arr = answer.split(numArr[i]);
    answer = arr.join(i);			   
    console.log(arr);
    console.log(answer); 
}

// i가 1일 때
// [ '', '4seveneight' ]
// "14seveneight"

 

|  개념

String.prototype.split()

  • String 객체를 지정한 구분자를 이용하여 여러 개의 문자열로 나눈다.
  • 구분자가 빈 문자열일 경우 str의 각각의 문자가 배열의 원소 하나씩으로 변환된다.

Array.prototype.join()

  • 배열의 모든 요소를 연결해 하나의 문자열로 만든다.
  • 괄호 안에는 각 요소를 구분할 문자열을 지정한다.

 

profile

✏️기록하는 즐거움

@nor_coding

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!