본문 바로가기

Java Script/알고리즘 풀이

[알고리즘] 0828

문제 - Codewars_Basic Mathematical Operations (8kyu)

Your task is to create a function that does four basic mathematical operations.
The function should take three arguments - operation(string/char), value1(number), value2(number).
The function should return result of numbers after applying the chosen operation.

Examples(Operator, value1, value2) --> output
('+', 4, 7) --> 11
('-', 15, 18) --> -3
('*', 5, 5) --> 25
('/', 49, 7) --> 7

문제 풀이

function basicOp(operation, value1, value2){
  if(operation == "+"){
    return value1 + value2;
  }else if(operation == "-"){
    return value1 - value2;
  }else if(operation == "*"){
    return value1 * value2;
  }else if(operation == "/"){
    return value1 / value2;
  }
}
  1. operation에 담기는 문자열은 연산자이기 때문에 if와 elseif 구문으로 연산자들의 케이스를 작성하고 만약 값이 동일할 시 해당 연산을 수행하도록 코드 작성

코드 비교

function basicOp(operation, value1, value2) {
  return  operation == '+' ? value1 + value2 :
          operation == '-' ? value1 - value2 :
          operation == '*' ? value1 * value2 :
          operation == '/' ? value1 / value2 : 'Wrong Operation';
}
  1. 내가 푼 방식과 비슷하게 작성된 코드인데 if와 elseif문을 사용하지 않고 return 문 만으로 작성된 코드다. 
  2. 만약 operation 부분에 +, -, *, / 이외의 연산자가 작성될 시 'wrong Operation'을 반환하는 코드

문제 - Codewars_Convert number to reversed array of digits (8kyu)

Given a random non-negative number, you have to return the digits of this number within an array in reverse order.

Example(Input => Output):
35231 => [1,3,2,5,3]
0 => [0]

문제 풀이

function digitize(n) {
  let nStr = String(n);
  let nArr = Array.from(nStr).map(Number);
  return nArr.reverse();
}
  1. 제시되는 숫자들을 하나씩 잘라서 숫자가 담긴 배열로 변환해야하는 문제이다.
  2. 숫자를 하나씩 자르기 위해 우선 숫자를 문자열으로 변환 이후 Array.from으로 배열으로 반환
  3. 반환된 배열에 담긴 값들은 문자열 숫자이기 때문에 이를 숫자로 바꾸기 위해서 map 메소드를 이용해서 숫자로 변환

코드 비교

function digitize(n) {
  return String(n).split('').map(Number).reverse()
}
  1. return문 한 줄으로 n을 스트링으로 바꾸고, split으로 한 글자씩 자른 후, 맵으로 스트링을 숫자로 바꾼 후, 역순으로 배열을 뒤집는 것을 작성한 코드

 

 

'Java Script > 알고리즘 풀이' 카테고리의 다른 글

[알고리즘] 0829  (0) 2023.08.29
[알고리즘] 0827  (0) 2023.08.27
[알고리즘] 0826  (0) 2023.08.26
[알고리즘] 0825  (0) 2023.08.25
[알고리즘] 0824  (0) 2023.08.24