20240109

귤금·2024년 1월 9일

Node.js 4기 TIL

목록 보기
8/86

Today?

알고리즘 코드카타


1) 나머지가 1이 되는 수 찾기

let solution = n =>{
    let x = 1;
    while (x) {
        if (n%x === 1) {
            return x;
        }
        x++
    }
}

while 안에 break를 걸지 않아도 return 문 써 주면 멈춘다.
break : 가장 가까이 있는 반복문 탈출
return : 쓰인 해당 함수를 탈출. (함수가 들어간 메소드, 반복문 다 탈출)

2) x만큼 간격이 있는 n개의 숫자

//나의 코드...
let solution = (x, n) => {
    let result = [x];
    while(result.length < n){
        result.push(result[result.length - 1]+x);
    }
    return result;
}
//다른 사람 코드
function solution(x, n) {
    return Array(n).fill(x).map((v, i) => (i + 1) * v)
}

나는 반복문 돌려서 배열에 더해주는 식으로... 했고
두 번째는... n개가 들어있는 배열을

  1. Array(n)으로 만듦
  2. 배열을 정수 x로 채움(예 : Array(5).fill(2) -> [2,2,2,2,2])
  3. map으로 현재 값과 다음 index를 곱해준다. (예 : 세 번째의 경우 (2+1) * 2 -> 6이 된다.)

map은 알고 있었지만 이렇게 활용하니까 신기했다..

3) 자연수 뒤집어 배열로 만들기

//나의 코드...
let solution = n =>{
    let str = `${n}`
    return str.split('').reverse().map(Number);
}
//다른 사람 코드
function solution(n) {
    // 숫자풀이
    var arr = [];
    do {
        arr.push(n%10);
        n = Math.floor(n/10);
    } while (n>0);
    return arr;
}

나는 문자로 변환해서 -> 배열에 넣고 reverse를 시킨 다음에 다시 map으로 숫자형으로 바꿔주는 방식을 사용했다.
숫자 그대로 사용하는 분이 do {} while문을 쓰셨길래 가져와 봄

  • while문과 do-while문의 차이점은 조건을 먼저 검사하느냐 나중에 검사하느냐일 뿐 동작 방식은 동일함
  • 다만, 무조건 중괄호 {} 블럭을 한번 실행하고, 조건을 검사하여 반복을 결정

0개의 댓글