ReactJS
Component의 Props
개념
참고
https://www.daleseo.com/react-button-component/
https://react.vlpt.us/basic/05-props.html
코드 카타
더한 값이 target이 나오는 nums 배열의 두 숫자 조합
문제
nums 배열과 특정한 수인 target을 인자로 받는 twoSum 함수는, nums 배열에서 두 숫자를 뽑아 더한 값이 target이 되는 조합의 두 index를 요소로 갖는 배열을 반환한다.
코드
const twoSum = (nums, target) => {
for (let i = 0; i < nums.length; i++) {
let firstnum = nums[i];
for (let j = i+1; j < nums.length; j++) {
let secondnum = nums[j];
if (firstnum + secondnum === target) {
return [i, j]
}
}
}
}
twoSum 함수가 실행되면,
- 첫번째 인자로 받은, 숫자들로 이뤄진 배열(nums)에서 두 숫자를 뽑는다.
- 첫번째 수를 먼저 뽑는다. 반복문을 사용하여 0에서 마지막(배열길이-1) 인덱스의 숫자를 뽑는다.
- 두번째 수를 뽑는다. 첫번째 수가 뽑힌 인덱스를 다시 뽑지 않기 위해, i보다 큰 인덱스에 해당하는 숫자를 뽑는다.
- 두 수를 비교해서 두번째 인자로 받은 값(target)과 비교한다.
- 같다면 그 때의 인덱스 값 i, j를 배열의 요소로 담아 반환한다.
수정 전 코드
const twoSum = (nums, target) => {
for (let i = 0; i < nums.length; i++) {
let firstnum = nums[i];
for (let j = 0; j < nums.length; j++) {
let secondnum = nums[j];
if (firstnum + secondnum === target) {
return [i, j]
}
}
}
}
let j = 0
- 문제 : j도 0에서부터 시작하려고 했는데 그럼 i와 j가 겹쳐서 중복된 검사를 진행하게 된다.
- n개의 숫자 중 두 숫자를 뽑을 조합을 생각하면, i를 0에서부터 n-1까지 다 훑을 때 j는 i로 선택되지 않은 수를 뽑아야 한다. 예를 들어, i가 2일 때 첫번째 숫자와 두번째 숫자가 포함된 조합은 이미 다 나왔고 세번째 숫자가 i에서 뽑혔기 때문에 j는 i보다 하나 큰 3, 즉 네번째 숫자부터 뽑아야 한다.
'TIL' 카테고리의 다른 글
[TIL-122~123] 노마드코더 ReactJS #3.0~#3.5 (0) | 2022.02.16 |
---|---|
[TIL-123] 위코드 23일차: React Router & Sass (0) | 2022.02.15 |
[TIL-121] 노마드코더 ReactJS #1.0~#3.0 (0) | 2022.02.12 |
[TIL-120] 위코드 19일차: 위스타그램 Wrap-Up / Javascript 테스트 (0) | 2022.02.11 |
[TIL-119] 위코드 18일차: 위스타그램 - 메인 페이지 (0) | 2022.02.10 |