항해 99 알고리즘 2일차 (5/14)

정성현·2022년 5월 15일
0

항해99

목록 보기
11/33

x만큼 간격이 있는

function solution(x, n) {
    var answer = [];
    
    for(var i=1; i<=n; i++)//n은 자연수의 갯수니깐 그 길이만큼 for문을 활용한다.
    {
        answer.push(i*x);//x의 간격만큼 곱해준다.
    }
    return answer;
}

나누어 떨어지는 수

function solution(arr, divisor) {
    var answer = [];
    for(let i = 0; i < arr.length; i++) //배열의 길이만큼 for문이 실행된다.
        {
            if(arr[i] % divisor === 0) //divisor의 값으로 나누어 지는 것만 답안지 배열에 넣는다.
                {
                    answer.push(arr[i]);
                }
        }
    if(answer.length === 0) //아무것도 없을때 예외처리
        {
            answer.push(-1);
        }
    answer.sort(function(a, b)  {//오름 차순 정렬
    return a - b;
});
    return answer;
}

문자열의 기본

// 문자열 s의 길이가 4 혹은 6이고, 숫자로만 구성돼있는지 확인해주는 함수, solution을 완성하세요.
//  예를 들어 s가 "a234"이면 False를 리턴하고 "1234"라면 True를 리턴하면 됩니다.

function solution(s) { 
    var answer = 0;
     if (!(s.length == 4 || s.length ==  6)){//먼저 문자열의 길이가 4 혹은 6인지 확인하기
        return false
    } else {//맞다면 문자열의 안에 숫자가 있는지 없는지 확인하기
        const tmp = s.split('')
        for(let i =0;i<tmp.length;i++){
        if (isNaN(tmp[i])){
            return false
        }
        }

    }
    //모두 맞으면 true반환
    return true;
}

완주하지 못한 사람

function solution(participant, completion) {
    var answer = '';
    participant.sort()//두 배열의 중복되지 않은 사람을 쉽게 찾기 위해 정렬을 해준다. 
    completion.sort()
    for(let i = 0; i<participant.length; i++)//참가명단과 완주한 명단을 비교하여 일치하지 않는 사람을 반환해준다.
        {
            if(participant[i] != completion[i])
                {
                    return answer = participant[i];
                }
        }
return answer;
}

자연수 뒤집기

//테스트 1번 값은 통과 했지만 정확성 테스트에서 실패가 뜸
//왜?? 425041같은 경우 는 120523가 되야하는데
//내림차순으로 정렬을 하였기 때문에 정확성에서 실패가 뜬 거 같다.
function solution(n) {
    var arr = n.toString().split('');
    var answer = [];

    
    for(var i = 0; i < arr.length; i++){
        answer.push(Number(arr[i]));
    }
    answer.sort((a,b) => b - a);//내림차순 정렬로 인한 오류

    return answer;
}
//수정 코드
function solution(n) {
    var arr = n.toString().split('');
    var answer = [];

    for(var i=arr.length-1; i>=0; i--){
        answer.push(Number(arr[i]));
    }

    return answer;
}

가장 작은수 제거

function solution(arr) {
    var answer = arr;
    var min = arr[0];//최소값을 임의 값으로 준다.
    
      if(answer.length === 1)//최소값을 반환할게 없을시 예외처리
        {
            return [-1] 
        }
        else
        for(let i = 0; i < arr.length; i++)
        {    
            if(arr[i] < min)//배열에 최소값을 구한다.
            {
                min = arr[i];
            }
        }
    arr.splice(arr.indexOf(min),1)//splice함수는 특정 배열 요소를 삭제시키고 특정값을 찾아주는 indexOf 함수를 이용해서 최소값을 제거해준다.
    return arr;
}
profile
I want to be programmer

0개의 댓글