프로그래머스 Lv0 day8

박상훈·2023년 2월 16일
0

🔪배열 자르기

숫자가 담긴 배열을 매개 변수들로 위치를 지정해서 잘라내준다

function solution(numbers, num1, num2) {
    let num = num1;
    var answer = [];
    while(num <= num2){
        answer.push(numbers[num]);
        num = num + 1
    }
    return answer;
}

num1 ~ num2 까지니 새로운변수 num을만들고
그안에 num1을 시작으로 하나씩 커지게해서 반복문을 실행한다.

🔮외계행성의 나이

숫자를 알파벳으로 치환하여 문자로 출력한다

아스키 코드를 이용해 푸는 방법


아스키코드란?
String.fromCharCode();
아스크코드표에서 문자'0' 은 아스키코드48 십진수로 00110001 입니다.
문자 소문자 'a'는 아스키코드 97 입니다. 즉 아스키코드의 차 49를 이용변환을 시켜준 풀이입니다.
이때 fromCharCode는 아스키코드를 문자로 바꿔줍니다.
라매개발자님 lv0 day8

👩‍⚕️진료순서 정하기

처음 생각했던 수도코드

  • 이머전시 숫자가 높을수록
  • 1에 해당되며 내림차순으로 배정받는다
  • 결과로는 배정받은 숫자들을 출력해준다.
  • 첫번째 배열에는 이머전시 숫자를 내림차순으로 정리
  • 두번째 배열에 배정받은 값들로 교체하여 적어주기

객체를 이용한 풀이방법

function solution(emergency) {
    let newArr = [];
    for (let i = 0; i < emergency.length; i++){
        newArr.push({value: emergency[i], idx : i})
    }
    newArr.sort((a,b) => b.value - a.value)
    var answer = new Array(emergency.length);
    // 원래는 = [] 이나 크기를 오류가 발생할 수 도있어서
    // 크기를 지정해줘서 오류를 예방한다.
    for(let i = 0; i < newArr.length; i++){
        let item = newArr[i];
        answer[item.idx] = i + 1;
    }
    return answer;
}

객체를 이용한 풀이방법


객체 밸류 값들로 불러와서 sort 내림차순 정렬을 사용해주며
새로운 배열을 선언할때 빈배열이 아닌
크기를 지정해줘서 오류를 예방한다.

🚻순서쌍 문제

곱할수있는 경우의 수를 출력해주면 된다!

이중 반복문을 이용하여 두수를 비교하였으나
시간이 오래걸린다.

맨처음 풀이는 두번의 수를 반복하기에 시간이 오래걸렸지만
이렇게 나머지가 없을때 카운트를 올려주는식으로하면 시간복잡도가 많이 줄어든다.

profile
다들 좋은 하루 되세요

0개의 댓글