본문 바로가기
항해99/온보딩 스터디

[항해99] 온보딩 스터디 - 2주차 3일 TIL

by junvely 2023. 3. 16.

🦄 온보딩 스터디 2주차 3일 TIL

✨03/15 : 목표 : 알고리즘 6일차 풀이


📒알고리즘 풀이

01 4일차 알고리즘 

 

1. 자릿수 더하기

정수 n이 매개변수로 주어질 때 n의 각 자리 숫자의 합을 return하도록 solution 함수를 완성해주세요.

 

프로그래머스

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

programmers.co.kr

접근 방법)

1. n이 정수이기 때문에 하나하나 length에 접근하기 위해 배열 or 문자열로 변환해 준다 => 문자열로 변환

2. for문을 돌려 n의 [i]번째 length에 접근하여 값을 뽑아 => 더하기 위해 다시 숫자로 변환해 준다.

3. 이 때, n의 length는 0부터 시작하기 때문에 범위를 n.length-1로 설정해 준다.

4. 숫자로 변환된 값을 하나씩 더해 준다.

function solution(n) {
    n = String(n)
    let result = 0;
    for(let i = 0; i <= n.length-1; i++){
        result += Number(n[i])
    }
    
    return result;
}

 

 

2. 순서쌍의 개수

순서쌍이란 두 개의 숫자를 순서를 정하여 짝지어 나타낸 쌍으로 (a, b)로 표기합니다. 자연수 n이 매개변수로 주어질 때 두 숫자의 곱이 n인 자연수 순서쌍의 개수를 return하도록 solution 함수를 완성해주세요.

 

프로그래머스

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

programmers.co.kr

접근 방법)

n을 1~n까지 나누었을 때, 딱 떨어지는 인수들만 뽑아 준다.

2. n%(1~n을 for문으로) === 0일 경우만 숫자의 갯수만 세 준다.

function solution(n) {
    let result = 0;
    
    for(let i = 1; i <= n; i++){
        if(n % i === 0) result++
    }
    return result
}

 

 

3. 숨어있는 숫자의 덧셈(1)

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

 

프로그래머스

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

programmers.co.kr

접근 방법)

1. 정규표현식으로 숫자만 골라낸다.

2. 문자열을 for문에서 index에 접근하여 뽑아서 전부 더해 준다.

function solution(my_string) {
    let numbers = my_string.replaceAll(/[a-z]/gi,"")
    let sum = 0;
    
    for(let i = 0; i < numbers.length; i++ ){
        sum += Number(numbers[i])
    }
    
    return sum
}

 

 

4. 문자열 정렬하기(1)

문자열 my_string이 매개변수로 주어질 때, my_string 안에 있는 숫자만 골라 오름차순 정렬한 리스트를 return 하도록 solution 함수를 작성해보세요.

 

프로그래머스

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

programmers.co.kr

- isNaN(a) => 숫자인지 아닌지 확인하는 방법

접근 방법)

1. 문자열을 배열로 변환

2. 배열에서 숫자가 아닌 요소 제거(filter 또는 replace 정규표현식)

3. 문자열 배열을 숫자열 배열로 새로 맵핑

4. sort로 오름차순 정렬

function solution(my_string) {
    const numbers = my_string.split('').filter(a => !isNaN(a)).map(a => Number(a))
    return numbers.sort()
}