반응형
아래 문제는 전형적인 자바스크립트의 for loop에 대한 문제이다. 코드는 아래와 같이 작성 가능하다.
www.codewars.com/kata/55eca815d0d20962e1000106/train/javascript
function generateRange(min, max, step) {
let temp = []
for (let i = min; i <= max; i += step) {
temp.push(i);
}
return temp
}
test("genrateRange", () => {
expect(generateRange(2, 10, 2)).toStrictEqual([2, 4, 6, 8, 10])
})
파이썬으로 오랫동안 개발하다보니, 위와 같이 예전의 C 스타일의 for-loop 작성하는 법을 거의 잊어버렸었는데, 이 문제를 통해서 다시 기억을 더듬을 수 있었다.
function generateRange(min, max, step) {
return Array.from({ length: 1 + (max - min) / step }, (_, i) => min + i * step);
}
Array.from 을 사용해서 위와 같이 도 풀 수 있다.
FYI, 파이썬으로 풀면 위 문제는 아래와 같이 풀 수 있다.
import unittest
def generate_range(min_, max_, step_):
return list(range(min_, max_ + 1, step_))
class TestGenerateRange(unittest.TestCase):
def test_generate_range(self):
self.assertEqual(generate_range(2, 10, 2), [2, 4, 6, 8, 10])
파이썬으로 풀면, 거의.. 30초 컷인데.. 아무래도 자바스크립트에 익숙치 않다보니.. 위 문제는 제한 시간내에 풀진 못하였다.
이 문제에서의 중요 개념
- 자바스크립트로 for-loop 사용방법
- 자바스크립트 Array.from
참고
developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/from
반응형
'개발 > CodeWars 문제 회고' 카테고리의 다른 글
[python ] 6kyu Unary function chainer (0) | 2021.01.24 |
---|---|
Buying a Car (0) | 2021.01.02 |
Regex Failure - Bug Fixing #2 (0) | 2020.12.20 |