알고리즘, CS

[프로그래머스 Lv. 0] 영어가 싫어요

차돌박이츄베릅 2023. 6. 7. 15:56

1. 문제

https://school.programmers.co.kr/learn/courses/30/lessons/120894?language=javascript 

 

프로그래머스

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

programmers.co.kr

 

 

 

2. 나의 풀이

레벨0 뭔데 어렵냐?????????

나는 for 반복문 돌렸다.

그런데 생각해보니 wordToNum 부분 필요없이 i 인덱스 값으로 대체 가능할 듯

function solution(numbers) {
    var answer = 0;

    let targetNumbers = numbers;
    let numWords = ['zero', 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine'];
    let wordToNum = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'];

    numWords.forEach(function (num, i) {
        let targetIndex = targetNumbers.indexOf(num);
        let numLength = num.length;
        console.log('num => ', num);

        let splitNum = targetNumbers.split(num);
        let joinNum = '';

        for (let j = 0; j < splitNum.length; j++) {
            if (j !== splitNum.length - 1) {
                joinNum += splitNum[j] + wordToNum[i];
            } else {
                joinNum += splitNum[j];
            }

            console.log(joinNum);
        }

        targetNumbers = joinNum;
        console.log('======================================');
    });

    answer = Number(targetNumbers);
    return answer;
}

 

1. 배열 메소드 5가지

const str = 'Hello, world!';
const arr = [0, 1, 2, 3, 4, 5];
const arr2 = [0, 1, 2, 3, 4, 5];

// 1. substr(시작 인덱스, 길이)
str.substr(1, 3);   // ell
str.substr(3);      // lo, world!

// 2. substring(시작 인덱스, 끝 인덱스)
str.substring(1, 3);    // el
str.substring(3);   // lo, world!

// 3. slice(시작 인덱스, 끝 인덱스)
str.slice(1, 3);    // el
str.slice(3);       // lo, world!
arr.slice(1, 3);    // [1, 2] => arr는 그대로 [0, 1, 2, 3, 4, 5]
arr.slice(3);       // [3, 4, 5] => arr는 그대로 [0, 1, 2, 3, 4, 5]

// 4. splice(시작 인덱스, 길이)
arr.splice(1, 3);   // [1, 2, 3] => arr는 결과값을 제외한 [0, 4, 5]
arr2.splice(3);     // [3, 4, 5] => arr는 결과값을 제외한 [0, 1, 2]

// 5. split(구분자, 잘라진 문자열의 최대 갯수)
str.split(',');     // ["Hello", " world!"]
str.split(',', 1);  // ["Hello"]

 

https://ddoni-code.tistory.com/10

 

[javascript] 문자열 자르기 substr / substring / slice / splice / split

javascript에서 문자열, 배열을 자르는 메소드로는 substr / substring / slice / splice / split 다섯가지가 있다. 1. substr : 시작 인덱스와 길이(생략 가능)를 정해서 문자열 자르기 2. substring : 시작 인덱스와

ddoni-code.tistory.com

 

 

2. replace 메소드로 문자열 치환하기

https://deeplify.dev/front-end/js/replace-and-replace-all

 

[Js/자바스크립트] 문자열 치환(변환, 대치, 바꾸기): replace, replaceAll

Javascript의 replace 함수를 이용하여 문자열 내부의 특정 문자 또는 문자열을 변하는 방법에 대해서 소개합니다.

deeplify.dev

https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/String/replace

 

String.prototype.replace() - JavaScript | MDN

replace() 메서드는 어떤 패턴에 일치하는 일부 또는 모든 부분이 교체된 새로운 문자열을 반환합니다. 그 패턴은 문자열이나 정규식(RegExp)이 될 수 있으며, 교체 문자열은 문자열이나 모든 매치에

developer.mozilla.org

https://sooftware.io/regex/

 

정규표현식 (regex)

정규 표현식 정규표현식(regular expression)은 일종의 문자를 표현하는 공식으로, 특정 규칙이 있는 문자열 집합을 추출할 때 자주 사용되는 기법입니다. 주로 Prograaming Language나 Text Editor…

sooftware.io