분류 전체보기 69

문자열 내 마음대로 정렬하기

풀이 function solution(strings, n) { strings.sort(function(a,b){ let first = a[n]; let second = b[n]; if(first === second){ return (a > b) - (a second) - (first < second); } }) return strings; } 먼저 받은 정보를 이용해 sort 메소드로 정렬을 해본다 받은 string 배열을 sort 메소드를 이용할껀데 first 는 처음 n 번째 문자열, second 는 다음 index의 n 번째 문자열로 정의를 해주고. 만약 n 번째 글자가 같다면 전체 string 배열의 문자열대로 오름차순으로 정렬, 다르다면 n 번..

카테고리 없음 2022.03.14

최소 직사각형

풀이 function solution(sizes) { let arr = [0,0] sizes.forEach(el=>{ let [l, s] = el.sort((a,b)=>b-a) if(l>arr[0]) arr[0] =l if(s>arr[1]) arr[1] =s }) return arr[0]*arr[1] } 먼저 size 라는 배열은 [ [60,50] , [30,70] , [30,60] , [80,40] ] 이렇게 들어온다 size 배열을 forEach 매소드를 이용해 배열속 인댁스안에 있는 element 들을 내림차순으로 정렬해주고 예: [60,50] [70,30] [60,30] [80,40] 배열속 index 0 값이 arr[0] 보다 크면 arr[0]에 저장 배열속 index 1 값이 arr[1] 보다..

코드 풀이 2022.03.14

하샤드 수

풀이: function solution(x) { return x % String(x).split('').reduce((a,b) => a + parseInt(b), 0) == 0 ? true:false; } 일단 받은 정수값이 하샤드수라면 나머지값이 0 이 되기에 자릿수를 더하기 위해, 먼저 정수를 string 으로 바꾸어주고 split 해서 나눠준다음 reduce 를 사용해 누적값을 정수로 다시 바꾼값을 받은 정수 x 랑 나누었을때 나머지값이 0 이라면 True, 아니면 False 값을 리턴하게 했다. 수정: function solution(x) { return x % String(x).split('').reduce((a,b) => a + parseInt(b), 0)? false:true; } % 를 썻..

코드 풀이 2022.03.14

콜라츠 추측

풀이: function solution(num) { let answer = 0 for (let i = 0; i < 500; i++) { if (num !== 1) { if(num % 2 === 0) { num /= 2 } else { num = num *3 +1 } } else { return answer = i } } return answer = -1 } 심플하게 500번 반복문을 써주고, 그안에 만약 받은 정수가 1이 아니라면 실행해주는 if else 문을 썻다 만약 % 2 로 나머지값이 0 이라면 정수를 반으로 나누고 그값을 저장, 아니면 정수 * 3 + 1 값을 저장하는 방법으로 만약 받은 정수 값이 1이 된다면 몇번째의 반복문 값을 리턴, 만약 500번안에 못하면 -1 값을 리턴해준다. 다른사람..

코드 풀이 2022.03.14

정수 제곱근 판별

풀이 function solution(n) { let num = Math.sqrt(n); if(num % 1 === 0 ) return (num+1) * (num+1) else return -1 } 먼저 받은 정수를 sqrt 해준다, 만약 받은 정수가 제곱이 되는 수라면 1 나누었을때 나머지값은 항상 0 이기때문에 나머지값이 0 이면 받은 (정수값+1)를 제곱한 수를 리턴해준다. 만약 나머지값이 0이 안된다면 -1 값을 리턴한다. 다른사람 풀이: function nextSqaure(n){ var result = 0; var x = 0; while (x*x < n){ x++; } if (x*x == n){ x++; result = x*x; }else{ result = 'no'; } return result..

코드 풀이 2022.03.14

JWT / API

JWT(Json Web Token) 란 Json 포멧을 이용하여 사용자에 대한 속성을 저장하는 claim 기반의 Web Token 입니다. JWT 는 Header, Payload, Signature 의 3부분으로 이루어지며, Json 형태인 각 부분은 Base64 로 인코딩 되어 아래와 같이 표현됩니다. -인코딩이라해도 이것이 암호화된것이 아니다. HEADER { "typ" : "JWT", "alg": "HS256" } typ : 토큰의 타입을 지정 alg : 해싱 알고리즘을 지정(HMAC SHA256 , RSA) PAYLOAD { "sub": "1234567890", "name": "Dahye Jeong", "iat": 1516239022 } payload 는 3가지 분류로 나뉜다. 그다음은, JWT ..

카테고리 없음 2022.03.13

정수 내림차순으로 배치하기

풀이 function solution(n) { return Number(n.toString().split('').sort((a,b) => b-a).join('')) } 다채로운 method 를 쓰기 위해 먼저 정수들을 string 으로 변환 해주고 하나하나 나누어서 내림차순으로 정렬해준다음 다시 붙였다. 그러면 원하는대로 873211 이지만 값이 string 이기에 Number() 로 감싸서 다시 정수로 만들어주어야 한다. 다른사람 풀이 function solution(n) { const newN = n + ""; const newArr = newN .split("") .sort() .reverse() .join(""); return +newArr; } 이분은 처음에 정수를 string 으로 바꾸고 각자..

코드 풀이 2022.03.12

자릿수 더하기

풀이 function solution(n){ return n.toString().split('').map(el => parseInt(el)).reduce((a,b) => a+b, 0) } 전 문제와 똑같이 스트링으로 만들어주고 각각 나눠서 정수로 만들고 reduce 사용해 누적수를 구했다. 다른사람 풀이 function solution(n){ // 쉬운방법 return (n+"").split("").reduce((acc, curr) => acc + parseInt(curr), 0) } map 을 안쓰고 바로 reduce 의 과정에 정수로 만들어 누적수를 구했다. 좀더 정갈하다.

코드 풀이 2022.03.12