[프로그래머스 0단계 :JS] 작성일 기준 정답률 87%

안녕하세요 연하입니다.

이어서 정답률 87% 코드입니다. 

 

1. 아이스 아메리카노 

function solution(money) {
    var answer = [parseInt(money/5500),money%5500];   
    return answer;
}

2. 배열 뒤집기 

function solution(num_list) {
    var answer = [];
    for(let i=num_list.length-1;i>=0;i--){
        answer[num_list.length-1-i] = num_list[i];
    }
    return answer;
}
function solution(num_list) {
    var answer = num_list.reverse();
    return answer;
}

3. 짝수는 싫어요

function solution(n) {
    var answer = [];
    for(let i=1;i<=n;i++){
        if(i%2 ===1){
            answer.push(i);
        }
    }
    return answer;
}

4. 피자 나눠 먹기(3)

function solution(slice, n) {
    return Math.ceil(n/slice);
}

5. 배열 자르기

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

(추가!!)

function solution(numbers, num1, num2) {
    return numbers.slice(num1,num2+1); //splice 둘다 가능
}

6. 배열 뒤집기 

function solution(my_string) {
    var answer = '';
    for(let i = my_string.length-1; i >= 0; i--){
        answer+=my_string[i]
    }
    return answer;
}

(추가!!)

function solution(my_string) {
    var answer = [...my_string].reverse().join('');
    return answer;
}

7. 배열 두 배 만들기

function solution(numbers) {
    return numbers.map(x=>2*x);
}

8. 배열 원소의 길이

function solution(strlist) {
    return strlist.map(x=>x.length);
}

9.  특정 문자 제거하기 

function solution(my_string, letter) {
    return my_string.split(letter).join('');
}

10. 점의 위치 구하기 

function solution(dot) {
    if(dot[0] > 0 && dot[1] > 0)return 1;
    else if(dot[0] < 0 && dot[1] > 0)return 2;
    else if(dot[0] < 0 && dot[1] < 0)return 3;
    else return 4;
}

(추가!!)

function solution(dot) {
    num = dot[0] * dot[1];
    return dot[0] > 0? (num > 0 ? 1 : 4) : ( num > 0 ? 3 : 2 );
}

11. 문자 반복 출력하기

function solution(my_string, n) {
    var answer = [];
    let string = my_string.split('')
    string.map( x => {
        for(let i = 0; i < n; i++){
            answer.push(x)
        }
    })
    answer = answer.join('')
    return answer;
}

(추가!!)

function solution(my_string, n) {
    var answer = '';
    my_string.split('').map( x => {
        answer += x.repeat(n)
    }).join('');
    return answer
}

12. 삼각형의 완성조건(1)

function solution(sides) {
    var answer = 0;
    sides.sort((a,b)=>{
        return a-b;
    })
    if(sides[0]+sides[1] > sides[2]){
        return 1
    }
    else return 2
    //삼항연산자를 이용 한다면
    // return sides[0]+sides[1] > sides[2] ? 1 : 2;
}

13. 옷가게 할인 받기

function solution(price) {
    if(price < 100000){
        return price;
    }
    else if(price < 300000){
        return Math.floor(price*0.95)
    }
    else if(price < 500000){
        return Math.floor(price*0.9)
    }
    else return Math.floor(price*0.8)
}

14. 제곱수 판별하기

function solution(n) {
    return  Number.isInteger(Math.sqrt(n))? 1 : 2;
    //return  Math.sqrt(n)%1 === 0? 1 : 2;
}

15. 배열의 유사도

function solution(s1, s2) {
    var answer = 0;
    s1.map( x => {
        s2.map ( y => {
            if( x === y) answer++;
        })
    })
    return answer;
}

(추가!!)

function solution(s1, s2) {
    return s1.filter(x => s2.includes(x)).length;
}

16. 순서쌍의 개수

약수의 개수를 전부 구한 뒤 각 약수의 n승에 +1 을 해준 뒤 전부 곱한 결과. 

function solution(n) {
    var answer = 1;
    var num = 0;
    for(let i = 2; i<=n; i++){
        while(Number.isInteger(n/i)){
            n=n/i;
            num++;
        }
        answer = answer * (num+1)
        num = 0;
    }
    return answer;
}

(추가!!)

function solution(n) {
    var answer = 0;
    for(let i = 1; i<=n; i++){
        if(n%i === 0){
            answer++;
        }
    }
    return answer;
}

17. 자릿수 더하기

function solution(n) {
    var answer = 0;
    for(let i = 6; i>= 0; i--){
        if(n/10**i !== 0){
            answer+=Math.floor(n/(10**i))
            n = n - Math.floor(n/(10**i))*(10**i)
        }
    }
    return answer;
}

18. 문자열안에 문자열

function solution(str1, str2) {
    return str1.includes(str2)? 1: 2;
}

19. 세균 증식

function solution(n, t) {
    return n*2**(t);
}

20. 중앙값 구하기

function solution(array) {
    var answer = 0;
    array.sort( (a,b) => {
      return a-b;
    }) 
    return array[Math.floor(array.length/2)];
}

21. 문자열 정렬하기(1)

function solution(my_string) {
    my_string = my_string.split('')
    var answer = my_string.length;
    while(answer){
        answer--;
        my_string[answer] = Number(my_string[answer])
    }
    my_string=my_string.filter( x => Number.isInteger(x))
    return my_string.sort( (a,b) => {return a-b});
}

(추가!)

function solution(my_string) {
    return my_string.split('').filter( (x) => !isNaN(x)).map((x)=>Number(x)).sort((a,b)=>a-b);
}