CODE KATA /1~2day

Goun Seo·2021년 9월 14일
0

1day

twoSum함수에 숫자배열과 '특정 수'를 인자로 넘기면, 더해서 '특정 수'가 나오는
index를 배열에 담아 return해 주세요.

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 = (num,target) => {
  let curIdx = 0;
  while(curId !== nums.length; i++){
    if(nums[curIdx] +nums[i+1] === target) return [curIDx, i+1];
  }
  curIDx++;
}
  • 문제 point: 배열 인덱스가 [0]+[1] = 4+9 , [1]+[2] = 9+11
    식으로 두 수의 인덱스가 앞 뒤로 합하고 배열로 리턴이 되어야 한다.

처음에 for문과 loop 생각했다가 while문으로 풀림
while(조건식) 실행문 : 조건식이 참인 동안 계속 반복함
현재인덱스 cruIdx를 변수로 만든다.


!== : 엄격한 부등 비교 연산자 , 불일치 연산자 라고도 한다.
두 피연자가 같지 않거나, 같은 자료형이 아니더라도 true를 반환한다.


2day

reverse 함수에 정수인 숫자를 인자로 받습니다.
그 숫자를 뒤집어서 return해주세요.

x: 숫자 return: 뒤집어진 숫자를 반환!
예들 들어, x: 1234 return: 4321
x: -1234 return: -4321
x: 1230 return: 321

const reverse =x=> 
//여기에 코드를 작성해주세요 .
return x <0 ? -Number(Array.from(x.tostring().replace
('-','')).reverse().join('')): number(Array.from(x.toString().replace('-','').reverse().join(''));

문제의 핵심은 string으로 시작해서 array로 바꿈➡숫자를 역으로 변환
➡배열 '' 표시를 없앰➡ 정수로 바꾸고 , 음수로도 숫자를 반환하게 한다.

<자세한 풀이 과정 >
x<0? // x가 0 이하이면

x.tostring() // tostring 메서드를 사용해서 x를 문자열로 반환

x.tostring().replace('-','') // replace() 메서드는 일부나 모든 부분이 교체한 문자열로 반환, 여기서는 배열의 , 기호를 없애는 역할

.reverse() // 문자열을 뒤에서 앞으로 역으로 바꿈

.join() // 배열의 모든 요소를 연결해 하나의 문자열로 만든다.

Number // 문자열을 정수로 바꿈

-Number // 음수 일때도 적용 되게 만든다.



다른 팀 풀이 참고 : split와 parseInt 사용하는 방법

const reverse = x => {
  let y = x.toString()
  let z = y.split('').reverse().join('')
  if(x<0){
    return -parseInt(z)
  }
  return parseInt(z)
}

reverse(-1234)

split() : 문자열 객체를 구분자를 이용하여 여러 개의 문자열로 나눔
parseInt() : 문자열 인자를 특정 진수(수의 진법 체계의 기준 값)의 정수로 반환해주는 함수

profile
그리다 보면 ~ ♪

0개의 댓글