프론트엔드✏️/코드캠프

알고리즘 - 별 거 없음

당근먹는하니 2022. 5. 20. 00:49
728x90
반응형

  x만큼 간격이 있는 n개의 숫자

 

function solution(x, n) {
  var answer = [];
  for( let i = 1; i <= n; ++i) {
    answer.push(x*i)
  }
  return answer;
}

등차수열 생각해서 풀었소

 

function solution(x, n) {
    return Array(n).fill(x).map((v, i) => (i + 1) * v)
}

ㄷㅏ른 사람 풀이...쏘씸플이네.. 

map은 정말 언능 공부해야겠다

 

  자릿수 더하기

 

자연수 N이 주어지면, N의 각 자릿수의 합을 구해서 return 하는 solution 함수를 만들어 주세요.
예를들어 N = 123이면 1 + 2 + 3 = 6을 return 하면 됩니다.

 이건 못 풀고 알고리즘 시간이 왔다.

//푼 시도... (틀린 코드)

function solution(n)
{
    var answer = 0;
		let arr = (String(n)).split(" ")
    console.log(arr)
  	for(let i = 0; i < arr.length; ++i) {
      answer += arr[i];
    }
    // [실행] 버튼을 누르면 출력 값을 볼 수 있습니다.
    console.log('Hello Javascript')

    return Number(answer);
}

(왜 굳이 배열로 바꾸려고 헀을까?!) 

 

숫자 타입 그대로는 n에 접근할 방법이 없다. 일단 문자열로 가져온다. 

String()으로 감싸기

 

answer는 숫자고, n[i]는 문자열이어서... 0 + '1' + '2' 이런식으로 더해짐

그래서 Number로 변환 후에 더해줘야함. 

 

Reduce

728x90
반응형