TIL 231122 알고리즘 공부

두두맨·2023년 11월 23일
1

문제 1.

풀이

function solution(x, n) {
   var answer = [];
   for (let i = 1; i <= n; i++) {
       answer.push(x*i)
   }
   return answer;
}
  1. 우선 정수 n만큼 돌면서 숫자들 뽑아낼 수 있도록 for문 돌리고,

  2. 결과 값이 나올 위치에 더해질 숫자인 x를 인덱스 값에 곱해주면, 첫번째부터 마지막 숫자까지 순차적으로 수가 곱해져서 도출된다.

  3. 마지막으로 answer를 return해주면 끝!



문제 2.

풀이

function solution(n) {

    return n.toString().split('').reverse().map(num => num = parseInt(num));
}

앞선 문제와 비슷한 듯 다르다. 뭐가 다른지 살펴보자.

  1. 숫자는 자리수를 각각 뽑아낼 수 없기 때문에 문자열로 만들어 준다.
  2. 문자열로 만든 숫자를 split 사용해 각 자리수를 분할해준다.
  3. 분할해 준 숫자가 담긴 배열을 reverse로 거꾸로 뒤집은 후!
  4. map 함수 이용해서 새 배열 만들고, parseInt안에 담아 정수로 만들어주면 끝!

다른 풀이

function solution(n) {
    let answer = [];
    let m=String(n).split('').reverse()
    for(let i=0; i<m.length; i++){
        answer.push(parseInt(m[i]))
    }
    return answer;
}

구조는 거의 비슷한데, 체이닝이냐 아니냐, for문 썼냐 안썼냐 정도가 다르다.
아직까진 for문 사용해서 푸는 구조가 조금 더 익숙하긴 한데,
체이닝 기법 좀 더 익숙해지기 위해 주된 풀이로 적었다.

profile
병아리 개발준비생 🐥

0개의 댓글