호다닥

배열만들기 본문

알고리즘 문제

배열만들기

3jun 2018. 10. 2. 14:21

 

나의 풀이

 

 

또 다른 풀이

 

 

먼저 두 가지로 나눠서 생각해보자. 

start 보다 end가 클 경우, 그리고 start 보다 end가 작을경우

 

먼저, start보다 end가 클 경우, 즉 값이 점점 증가할 경우에는 

var idx = 0; for (var i = start; i < end; i += step) {     arr[idx] = i;     idx++; }

 

이렇게 작성할 수 있고,

반대로 start보다 end가 작을 경우, 즉 값이 점점 감소할 경우에는 

 

 

var idx = 0; for (var i = start; i > end; i += step) {     arr[idx] = i;     idx++; }

이렇게 작성하면 된다.

 

이 코드를 if문으로 합쳐서 완성하면 아래와 같다. 

 

function range(start, end, step) {     var arr = [];     var idx = 0;      if (start < end) {         for (var i = start; i < end; i += step) {             arr[idx] = i;             idx++;         }     } else {         for (var i = start; i > end; i += step) {             arr[idx] = i;             idx++;         }     }     return arr; }  // 테스트 코드 console.log(range(1, 10, 1)); console.log(range(-1, 10, 3)); console.log(range(10, -10, -4));
[1, 2, 3, 4, 5, 6, 7, 8, 9] [-1, 2, 5, 8] [10, 6, 2, -2, -6]

 

Comments