TIL 17일차

김동현·2022년 11월 23일

TIL

목록 보기
15/93

알고리즘 23번(자연수 뒤집어 배열로 만들기)

function solution(n){
	let answer = n.toString().split('')
    
    let t = answer.reverse()
    return t.map(Number)
}

알고리즘 24번(정수 내림차순으로 배치하기)

function solution(n){
	let answer = n.toString().split('')
    // answer 변수에 n을 문자열로 바꾼후 split을 써서 여러개로 나눔
    answer.sort((a,b)=>{
    	return b-a
    })// answer 각 배열 크기순으로 내림차순함
    
    return Number(answer.join('')) // 숫자형으로 바꾸기 위해 Number을 쓰고 join을 써서 배열을 합쳤습니다!!
}

알고리즘 25번(정수 제곱근 판별)

function solution(n){
	let t = Math.sqrt(n) // Math.sqrt 메소드를 사용해 제곱근을 반환해줍니다 그것을 변수 t에 담아둡니다
    return t===parseInt(t) ? (t+1)**2 : -1
    // t가 숫자열 t와 같다면 참일땐 t에 +1을 더한뒤 제곱연산자 사용해 값을 출력해주고 거짓일 땐 -1을 출력해줍니다!!
}

알고리즘 26번(제일 작은 수 제거하기)

function solution(arr){
	arr.splice(arr.indexOf(Math.min(...arr)),1)
    //arr에서 splice(제거할 요소, 개수)
    // indexOf를 써서 원하는 인덱스를 추출해주며 Math.min 함수를 써서 최소값을 추출
    return arr.length>1 ? arr : [-1]
    // arr의 길이가 1보다 클때 참이면 arr 출력 / 거짓이면 [-1] 출력
}

알고리즘 27번(콜라스 추측)

function solution(n) {
    let count = 0; // 변수 answer에 0의 값을 넣음
    while(n !=1 && count !=500){ // while 반복문을 써서 n의 값이 1이 아니고 count 값이 500이 아닐때
        n%2==0 ? n = n/2 : n = n*3 +1; // n의 값이 짝수 일때 n= n/2공식으로 가고 홀수일땐 n=n*3+1 공식으로 가서 계산후
    count++; //count 1씩 증가한다
  }
    return n == 1 ? count : -1; // n의 값이 1일때 참이면 count 값을 출력하고 아닐시에는 -1을 출력한다!
}

알고리즘 28번(하샤드 수)

function solution(x){
	let t= x.toString().split('')
    // 변수 t에 x를 문자열로변환뒤 split을 사용해 문자열을 여러개로 나눕니다!
    let sum = 0 // 변수 sum에 0값을 선언
    
    for(let i of t){ // for of를 사용해 그 배열에 값을 반복해서 나타내줌
    	sum+=parseInt(i) //변수 sum에 i를 숫자열로 변환후 값을 담아둔다.
    }
    return x%sum===0 ? true : false
    // x에 sum을 나눈 나머지가 0일때 참이면 true, 거짓이면 false를 썻다!
}
profile
꺽이지 않는 마음

0개의 댓글