Javascript

[프로그래머스 Level1] 숫자 문자열과 영단어 - 우수 코드(Javascript)

728x90
반응형

☺️ 나의 코드

https://hoyashu.tistory.com/257

 

[프로그래머스] 숫자 문자열과 영단어 - 나의 코드(Javascript)

🚨문제 https://programmers.co.kr/learn/courses/30/lessons/81301?language=javascript 🔅예제 이해 다음은 숫자의 일부 자릿수를 영단어로 바꾸는 예시입니다. 1478 → "one4seveneight" 234567 → "23four5si..

hoyashu.tistory.com

 

 

👍우수 코드

프로그래머스에서 제공하는 다른 사람들의 코드 중 좋아요가 가장 높은 코드

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

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

    return Number(answer);
}

 

 

👨🏻‍💻선행되어야 할 공부

  1. .split()
  2. .join()

 

 

😎알고리즘 분석

  1. 영어 단어를 한개씩 검사해본다
  2. 문장에 루프중인 영어단어가 있는지 확인해서, 만약 있다면 해당 단어를 기준으로 배열을 만든다. / .split()사용
  3. 배열을 루프중인 인덱스를 넣어서 이어준다. (쩐다)
예를 들어 2zeroone3인 경우가 있다.
for문이 돌때 인덱스 0에서 배열에서 가져온 단어는 zero다. 2zeroone3을 zero로 배열을 쪼개면
[2, one3] 이렇게 된다. 그리고 두개의 배열을 0으로 이어준다.
그러면 20one3 이렇게 된다.

 

 

❤️배운 점

나는 글자를 한개한개 검사해서 담는 방식을 생각했는데, 이런 방식보다 훨씬 가볍고 좋은 것 같다.
split와 join을 이용할 생각을 하다니.. 나도 꼭 나중에 써먹어봐야겠다.

 

 

728x90
반응형