2022.05.16 TIL

E__ppo·2022년 5월 16일
0

cote

목록 보기
3/5
post-custom-banner

21. 이상한 문자 만들기

function solution(s) {
    let arr = s.split(' ')
    let answer = ''
    
    
    for (let i = 0; i < arr.length; i++) {
        for(let j = 0; j < arr[i].length; j++) {
            if(j % 2 === 0) {
                answer += arr[i][j].toUpperCase()
            } else {
                answer += arr[i][j]
            }
        }
        if (i < arr.length -1) {
            answer += ' '
        }
    }
    return answer;
}

22. 자릿수 더하기

function solution(n)
{
    let answer =0
    let intarr=[]
    intarr=n.toString()

    for(i=0; i<intarr.length; i++){
        answer += parseInt(intarr[i])
    }

    return answer;
}

n.toString()을 하게되면 정수를 예쁘게 문자열로 변환할 수 있다!
자릿수 더하기는 형변환 후에 연산이 되어야하기 때문에
answer를 정수로 선언 후 += 해주었다.

23. 자연수 뒤집기

function solution(n) {
    var answer = [];
    
    let narr= n.toString()
    
    for(i=narr.length-1; i>=0; i--){
        answer.push(Number(narr[i]))
    }
    
    return answer;
}

배열에 인덱스값을 배정해서 각각 넣어주는 것이 Push
+=로 문자열을 더하면 하나의 문장이 하나의 인덱스로
저장(물론 문자열이기 때문에 2차원 배열로 표현은 가능하쥐)

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

function solution(n) {
    let answer =""
    let intarr=[]
    intarr=n.toString().split("").sort((a,b) => b-a)

    for(i=0; i<intarr.length; i++){
        answer += intarr[i]
    }
    return Number(answer)
}

split와 sort 함수의 개념이 조금씩 자리잡혀가는 것 같다. 물논 나는 for와 if가 가장 먼저 떠오르지만....

25. 정수 제곱근 판별

function solution(n) {
    let answer=0
    let logn = Math.sqrt(n)

    if(logn%1==0){
        answer = (logn+1)*(logn+1)
    }else answer=-1

    return answer
}

내장함수가 채고시다
Math.sqrt는 입력된 정수의 제곱근을 리턴해주는 함수
만약에 제곱근이라면 소숫점 없이 딱 떨어지기 때문에
%1로 나누었을때 0이라면 제곱근으로 판단하여
+1값을 더해주고 다시 곱해줬다.

26. 제일 작은 수 제거하기

function solution(arr) {
    
    let answer = Math.min.apply(null, arr)

    if(arr.length ==1){
        arr[0] = -1
    }else{
       for(i=0; i<arr.length; i++){
           if(arr[i]===answer){
               console.log(i)
               arr.splice(i, 1)
           }
       }
    }
    return arr;
}

내장함수가 채고시다 2222222

Math.min.apply()는 Math.min에 있는 함수를 호출하는 방식이다. Null은 this를 의미하고 위 문법에서는 불필요한 this이기 때문에 순회하여 값을 추출할 arr값만 기재했다.

27.콜라츠 추측

function solution(num) {
    let count=0

    while(500){
        if(num===1) break
        if(num%2==0){
            num = num/2
            count++
        }else{
            num = (num*3)+1
            count++
        }
    }
    
    if(count>=500){
        count= -1    
    }
    
    return count
    
}

와.... 오랜만에 while을 써보네
break를 자꾸 잘못 걸어서 무한루프되고
VS코드 멈추고 난리 ㅋㅋㅋ

28. 하샤드 수

function solution(n) {
 
    
    let answer=[]
    let ishashade = 0;
    let x=n.toString()

    for(i=0; i<x.length; i++){
      answer.push(Number(x[i]))
    }

    ishashade = answer.reduce((a,b) => a+b)

    if(!(x%ishashade==0)) return false
    else return true
    
}

29. 3진법 뒤집기

function solution(n) {
    
    let change3 = n.toString(3)
    let answer=""

    for(i=change3.length-1; i>=0; i--){
        answer += Number(change3[i])
    }
    answer=parseInt(answer,3)
    
    return answer
}

paseInt 함수가 단순히 정수변환 함수라고만 생각했는데
10진법으로 변환해주는 함수라는 것을 알게됐다
놀랄 노짜....

그리고 Sting 함수도 다른 진법으로 스트링자료 형변환할 수 있다는 사실....!!
3진법 뒤집기 걱정 좀 됐는데 생각보다 내장함수가 잘 구현되어있어서 다행이었다.

post-custom-banner

0개의 댓글