코테) 프로그래머스 - 숨어있는 숫자의 덧셈(1)

oatraspberry·2023년 10월 23일

💻숨어있는 숫자의 덧셈 (1) - JavaScript

문제 설명

문자열 my_string이 매개변수로 주어집니다. my_string안의 모든 자연수들의 합을 return하도록 solution 함수를 완성해주세요.

제한사항

1 ≤ my_string의 길이 ≤ 1,000
my_string은 소문자, 대문자 그리고 한자리 자연수로만 구성되어있습니다.

입출력 예

my_string | result
"aAb1B2cC34oOp" | 10
"1a2b3c4d123" | 16

입출력 예 설명

  • 입출력 예 #1
    "aAb1B2cC34oOp"안의 한자리 자연수는 1, 2, 3, 4 입니다. 따라서 1 + 2 + 3 + 4 = 10 을 return합니다.

  • 입출력 예 #2
    "1a2b3c4d123Z"안의 한자리 자연수는 1, 2, 3, 4, 1, 2, 3 입니다. 따라서 1 + 2 + 3 + 4 + 1 + 2 + 3 = 16 을 return합니다.

풀이 과정

✏️첫 번째 풀이

function solution(my_string) {
    var answer = 0;
    let arr = [...my_string];
    let num = arr.filter((value) => value != '');
    console.log(num);
    for ( i = 0; i < num.length; i++) {
        answer += i;
    }
    return answer;
}

✏️두 번째 풀이

function solution(my_string) {
    var answer = 0;
    let arr = [...my_string];
    let num = arr.filter((value) => !isNaN(value));
    for ( i = 0; i <= num.length; i++) {
        answer += i;
    }
    return answer;
}

✏️세 번째 풀이

function solution(my_string) {
    var answer = 0;
    let arr = [...my_string];
    let num = arr.filter((value) => !isNaN(value));
    console.log(num);
    for ( i = 0; i < num.length; i++) {
        answer += parseInt(num[i]);
    }
    return answer;
}

👩‍💻풀이 과정 설명

my_string을 배열에 담고 그 배열을 filter를 통해 string만 제거하려고 했었다.
검색하기 전엔 isNaN을 몰랐기 때문에 ''를 적고 num에 무엇이 담겨있는지 먼저 확인을 했다.

isNaN() - 매개변수가 숫자인지 검사하는 함수 (NaN은 Not a Number다.)

isNaN 함수를 찾고 나니 for문에서 막혀버렸다. 그래서 i번째 num을 문자열에서 정수로 바꿔주는 메서드를 사용했고, answer에 더하는 방식으로 코드를 바꾸었다. 그리고 i가 0부터 시작하니까 <=가 아닌 <로 바꾸었더니 통과되었다.

profile
개발자가 될테야

0개의 댓글