[TIL]_Code Kata (day1)
🌈 매일 아침 10시에서 11시까지 code kata(알고리즘) 문제를 풀면서 문제 푸는 능력을 기르고 생각하는 시간을 가진다.
- 정답 맞추기
- 컴퓨팅 사고 / 문제 해결 역량 보여주기
- pair programming / communication / driver & navigator
- 작성한 코드를, 생각하는 로직을 정확한 용어와 함께 말로 설명하는 연습
💎 Day 1.
문제
twoSum함수에 숫자배열과 '특정 수'를 인자로 넘기면, 더해서 '특정 수'가 나오는 index를 배열에 담아 return해 주세요.
nums: 숫자 배열
target: 두 수를 더해서 나올 수 있는 합계
return: 두 수의 index를 가진 숫자 배열
예를 들어,
nums: 숫자 배열
target: 두 수를 더해서 나올 수 있는 합계
return: 두 수의 index를 가진 숫자 배열
예를 들어,
nums은 [4, 9, 11, 14] target은 13
nums[0] + nums[1] = 4 + 9 = 13 이죠?
그러면 [0, 1]이 return 되어야 합니다.
target으로 보내는 합계의 조합은 배열 전체 중에 2개 밖에 없다고 가정하겠습니다.
🤯 원래 작성한 코드
const twoSum = (nums, target) => {
for(let i=0; i<nums.length; i++) {
for(let j=i+1; j<nums.length; j++) {
👉 처음에 문제를 보고 중첩for문을 돌려서 i와 i에 더하기 1을 해서 j를 구하는 식은 생각을 했지만 다음부터는 머릿속이 텅 비면서 아무 생각이 들지 못했다. 그래서 여러가지를 찾아보고 물어본 결과 정답을 도출해냈다. 👇
✏️ 문제 풀이
👉 문제를 보고 생각했을 때 배열에 있는 숫자들 중에서 숫자 두개의 합을 구하는 문제라고 생각했다.
👉 nums배열에 [4, 9, 11, 14]라면
- 4+9, 4+11, 4+14
- 9+11 9+14
- 11+14
for(let i=0; i<nums.length; i++) {
for(let j=i+1; j<nums.length; j++){
if(nums[i]+nums[j] === target) { //nums[i,j]->없다.그냥 없다.아무의미 없다. 지완님피셜,nums[i+j]->index만 더한것
return [i,j]; // nums[i,j]-> 배열을 반환한것,
}
}
}
}
twoSum([4, 9, 11, 14],13);
Author And Source
이 문제에 관하여([TIL]_Code Kata (day1)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@j-jhoo/Code-Kata저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)