프로그래머스 Lv. 1 KAKAO_ 숫자 문자열과 영단어, split(), join()

FE 개발자 신상오·2022년 7월 9일
0

프로그래머스

목록 보기
18/20
post-thumbnail

문제

풀이

function solution(s) {
    
    const   words = ['zero', 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine'];
    
    for (let i = 0; i < words.length; i++){
        let splitArr = s.split(words[i]);
        s = splitArr.join(i);
    }
    return Number(s);
}

해설

1. 영단어를 배열로 선언 할당

반복문에서 사용하기 위한 배열을 선언 할당
const words = ['zero', 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine'];

2. 반복문

"one4seveneight" -> 1478 로 변환하는 과정을 예시로 들겠습니다.

    for (let i = 0; i < words.length; i++){
        let splitArr = s.split(words[i]);
        s = splitArr.join(i);
    }
  • i 가 1일 때
    words[i] : 'one'
    splitArr : ['', '4seveneight'] ➡️ 'one'으로 split된 배열
    s = '14seveneight' ➡️ 배열의 두 요소 '', '4seveneight' 를 구분자 1로 연결
  • i가 7일 때
    words[i] : 'seven'
    splitArr : ['14', 'eight']
    s = '147eight'
  • i가 8일 때
    words[i] : 'eight'
    splitArr : ['147', 'eight']
    s = '1478'

3. 문자열 숫자로 변환

return Number(s)

String.prototype.split()

split() 메서드는 구분자로 지정한 특정 문자열을 기준으로 여러 개의 문자열로 나눕니다

str.split([separator[, limit]])

  • separator : 원본 문자열을 끊어야 할 부분을 나타내는 문자열
  • limit : 끊어진 문자열의 최대 개수를 나타내는 정수
    배열의 원소가 limit개가 되면 split을 멈춥니다
  • 반환값 : separator마다 끊은 부분 문자열을 담은 배열 반환

Array.prototype.join()

join() 메서드는 배열의 모든 요소를 구분자로 연결해 하나의 문자열을 반환합니다.

arr.join([separator])

  • separator: 배열의 각 요소를 구분할 문자열 지정
    생략할 경우 - 배열의 요소들이 ','로 구분 됨
    빈문자열일 경우 - 배열의 요소 사이에 아무 문자도 없이 연결
  • 반환값 : 배열의 모든 요소들을 구분자로 연결한 하나의 문자열 반환
profile
주간 회고용 블로그입니다 (개발일지와 정보글은 티스토리에 작성합니다.)

0개의 댓글