Your task is to make a function that can take any non-negative integer as an argument and return it with its digits in descending order. Essentially, rearrange the digits to create the highest possible number.
=>
입력값으로 음수가 아닌 숫자가 주어지고, 각 숫자를 내림차순으로 정렬한 후에 return 해주면 된다.
Examples:
Input: 42145 Output: 54421
Input: 145263 Output: 654321
Input: 123456789 Output: 987654321
풀이
function descendingOrder(n){
return Number(n.toString().split("").sort((a,b) => b-a).join(""))
}
ex) n이 42145라면
n.toString() // "42145"
.split("") // 각문자열을 배열로 변환, ["4","2","1","4","5"]
sort((a,b) => b-a) // sort함수를 이용해서 내림차순으로 정렬한다. ["5","4","4","2","1"]
.join("") // 각 배열의 값을 문자열로 합쳐준다, "54421"
Number() // 문자열값을 Number로 변환한다
It has long been rumoured that behind Chuck's beard is not a chin, but another fist!
When shaving, Chuck accidentally punched himself in the face. He is the only man that could take that punch without dying, but that doesn't mean it didn't sting! Chuck can't remember a thing - he needs your help!!
Hidden within the provided array of arrays are numbers that represent the letters of the words for some of Chuck's favourite things! Your job is to translate them, and return the words so that Chuck can get back to the business of punching and kicking things.
=>
각 숫자들에 대해 아스키코드로 변환해서 리턴
EXAMPLE
(1)
input : fistBeard([[78], [117, 110, 99], [104, 117], [107, 115]])
output : 'Nunchuks';
(2)
input : fistBeard([[70, 97, 99], [101, 45, 75, 105, 99, 107]])
output : 'Face-Kick'
풀이
function fistBeard(arr) {
var step1 = arr.join(',') // "78,117,110 ..."
var step2 = step1.split(',')
var answer = ''
for(let i = 0; i<step2.length; i++) {
answer = answer + String.fromCharCode(step2[i])
}
return answer
}
arr가 2차원 배열로 있는 경우가 있으니
arr.join(',')으로 배열을 문자열로 바꿔준 후에
다시 split(',')으로 1차원배열로 만들어준다.
그 후에 for문으로 각 글자에 대한 아스키코드를 answer에 넣어주고 리턴해준다.
0보다 큰 정수x에 대해, 함수F(x)를 다음과 같이 정의하자.
x가 10진수로 표현했을 때 K자리인 수라면,
F(x) = (x를 제곱해서 10진수로 표현하고 마지막 K자리를 취한 값이 x와 같으면) 1, (그렇지않으면) 0
몇가지 예를 들면
F(1) = 1이다 (11 = 1)
F(2) = 0이다 (22 = 4)
F(3) = 0이다 (33 = 9)
F(10) = 0이다 (1010 = 100)
F(625) = 1이다 (625*625 = 390625)
어떤 주어진 정수 n에 대해, x<n이면서 F(x) = 1을 만족하는 정수 x들 중 가장 큰 정수를 찾는 프로그램을 작성하라.
입력 형식
정수 n이 주어진다. n은 0보다 크고 2147483647보다는 작다.
출력 형식
입력받은 n에 대해, F(x) = 1, x < n을 만족하는 정수 x들중 가장 큰 정수를 리턴한다.
풀이
function aNum(x) {
var len = x.toString().length
var mul = x*x
var a = mul.toString()
var res = ''
for(let i = a.length-len; i<a.length; i++) {
res = res + a[i]
}
var b = Number(res)
if(b === x) {
return 1
}
if( b !== x) {
return 0
}
}
풀이
코드
function digPow(n, p){
var middleAnswer = 0
var ntoStr = n.toString()
for(let i = 0; i<ntoStr.length; i++) {
middleAnswer = middleAnswer + Math.pow(ntoStr[i],p+i)
}
if(!Number.isInteger(middleAnswer/n)) {
return -1
}
var answer = middleAnswer / n
return answer
}