Code Kata Week-1

PRB·2021년 8월 22일
0

Algorithm

목록 보기
1/2
post-thumbnail

1번 문제

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 = (nums, target) => {
  for(let i= 0;  i < nums.length; i++){
    if( nums.indexOf(target-nums[i])> 0){
      const secondNum = target - nums[i]
      return [nums.indexOf(nums[i]),nums.indexOf(secondNum)]
    }
  }
}

2번 문제

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

x: 숫자 return: 뒤집어진 숫자를 반환!

예들 들어, x: 1234 return: 4321

x: -1234 return: -4321

x: 1230 return: 321

문제풀이🧑🏻‍💻

let result = "";
const reverse = x => {
  for(let i = String(x).length-1; i > -1; i--){
   result += String(x)[i] 
  }
  if(result.indexOf('-')>0){
    return result.substring(0,result.length-1)*-1
     
  }
  return Number(result)
}
reverse(-667867)

3번 문제

String 형인 str 인자에서 중복되지 않은 알파벳으로 이루어진 제일 긴 단어의 길이를 반환해주세요.

str: 텍스트 return: 중복되지 않은 알파벳 길이 (숫자 반환)

예를 들어, str = "abcabcabc" return 은 3 => 'abc' 가 제일 길기 때문

str = "aaaaa" return 은 1 => 'a' 가 제일 길기 때문

str = "sttrg" return 은 3 => 'trg' 가 제일 길기 때문

문제풀이🧑🏻‍💻

4번 문제

숫자인 num을 인자로 넘겨주면, 뒤집은 모양이 num과 똑같은지 여부를 반환해주세요.

num: 숫자 return: true or false (뒤집은 모양이 num와 똑같은지 여부)

예를 들어, num = 123 return false => 뒤집은 모양이 321 이기 때문

num = 1221 return true => 뒤집은 모양이 1221 이기 때문

num = -121 return false => 뒤집은 모양이 121- 이기 때문

num = 10 return false => 뒤집은 모양이 01 이기 때문

문제풀이🧑🏻‍💻

let reverse = ""
let arr= []
const sameReverse = num => {
  arr = String(num).split("")
   if(arr.reverse().join("") === String(num)){
    return true 
   }
  else{
    return false
  }
}
profile
사용자 입장에서 사용자가 원하는 것을 개발하는 프론트엔드 개발자입니다.

0개의 댓글