2022_01_12

오늘 배운 내용은 API관련이었다. 이는 따로 포스팅을 하였기에 TLI에 따로 기입하지 않고 링크를 남긴다.

[API]https://velog.io/@binheart/Rest-vs-GraphQL

⚙︎ Today Coding

배열의 최소공배수를 구하는 알고리즘을 구현했다.아래는 하루종일 고민해서 짠 함수이다.

function aaa (x, y) {
   let a = x, b = y, num = 0, gcd = 0
   while(1) {
       if(a%b !== 0){
           num = a
           a = b
           b = num%b
       } else {
           gcd = b
           break;
       }
   }
   return (x*y)/gcd
}

function solution(arr) {
   
   let lcm = 0, i =2, arr0 = arr[0], arr1 = arr[1]
   let answer = 0
   
   if(arr.length === 1) {
       answer = arr[0]
   } else {
       if(arr0 < arr1) {
           lcm = aaa(arr1, arr0)
       } else {
           lcm = aaa(arr0,arr1)
       } answer = lcm
       for(i; i < arr.length; i++) {
           if(arr[i] > lcm) {
               lcm = aaa(arr[i], lcm)
           } else {
               lcm = aaa(lcm, arr[i])
           }
       } 
       answer = lcm
   }
   return answer;
}

고민하며 코딩하고나니 줄수가 49줄정도 나왔다. 다 풀고 나서 다른사람의 코드를 보았는데 딱 6줄 있었다.

function nlcm(num) {
	return num.reduce((a,b) => a*b / gcd(a,b))  
}
   
function gcd(a, b) {
	return a % b ? gcd(b, a%b) : b
}

이렇게 짧게가능한거였다니.. 성취감과 함께 허탈함이오는 하루였다.

좋은 웹페이지 즐겨찾기