[자바스크립트/javascript] 프로그래머스 : 코딩테스트 입문 11~20문제

★filter 와 map, reduce 사용법 익히기

그 외

sort((a,b)=>a-b) (숫자 기준으로 정렬하기 (기본 sort는 문자열 기준으로 정렬 (ex: 1, 100, 99999, 20 를 정렬하면 1, 100, 20, 99999 순으로 정렬됨)))

 

 

11. 배열의 평균값

https://school.programmers.co.kr/learn/courses/30/lessons/120817

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

function solution(numbers) {
    var answer = 0
    for (i of numbers) {
        answer += i
    }
    return answer / numbers.length;
}

다른 사람 풀이(reduce메서드) 🔗

function solution(numbers) {
    return numbers.reduce((acc, cur) => acc + cur) / numbers.length
}

 

 

 

12. 양꼬치

https://school.programmers.co.kr/learn/courses/30/lessons/120830

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

function solution(n, k) {
    return (n * 12000) + (k - parseInt(n / 10)) * 2000
}

 

 

 

13.머쓱이보다 키 큰 사람

https://school.programmers.co.kr/learn/courses/30/lessons/120585

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

function solution(array, height) {
    array.push(height)
    array = array.sort().reverse()
    return array.indexOf(height);
}

다른 사람 풀이(filter 이용)

function solution(array, height) {
    return array.filter((el)=>{return el > height;}).length
}

 

 

 

14. 중복된 숫자 개수

https://school.programmers.co.kr/learn/courses/30/lessons/120583?language=javascript 

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

function solution(array, n) {
    return array = array.filter(num => num === n).length;
}

 

 

 

15. 배열 뒤집기

https://school.programmers.co.kr/learn/courses/30/lessons/120821

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

function solution(num_list) {
    return num_list.reverse();
}

 

 

 

16. 배열 원소의 길이

https://school.programmers.co.kr/learn/courses/30/lessons/120854?language=javascript 

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

function solution(strlist) {
    l = []
    for (i of strlist) {
        l.push(i.length)
    }
    return l;
}

다른 사람 풀이 (map 이용)

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

 

 

 

17. 짝수 홀수 개수

https://school.programmers.co.kr/learn/courses/30/lessons/120824?language=javascript 

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

function solution(num_list) {
    let even = 0
    let odd = 0
    for (i of num_list) {
        if (i % 2 === 0) {
            even += 1
        } else {
            odd += 1
        }
    }
    return [even,odd]
}

다른 사람 풀이

function solution(num_list) {
    var answer = [0,0];

    for(let a of num_list){
        answer[a%2] += 1
    }

    return answer;
}

이해가 안 된다..

 

 

 

18. 최댓값 만들기

https://school.programmers.co.kr/learn/courses/30/lessons/120847?language=javascript 

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

function solution(numbers) {
    numbers = numbers.sort((a,b)=>a-b).reverse()
    return numbers[0] * numbers[1]
}

자바스크립트로 sort를 이용할 때 문자열 기준이 아니라 숫자 기준으로 정렬하는 법을 모르겠어서 보고 풀었다..^^

sort((a,b)=>a-b) 기억하기

 

 

 

19. 피자 나눠 먹기 (3)

https://school.programmers.co.kr/learn/courses/30/lessons/120816?language=javascript 

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

function solution(slice, n) {
    if (n % slice === 0) {
        return n / slice
    } else {
        return parseInt(n / slice) + 1
    }
}

다른 풀이(Math.ceil 이용)

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

그냥 올려버리면 끝이었다..

 

 

 

20. 문자열 뒤집기

https://school.programmers.co.kr/learn/courses/30/lessons/120822

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

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

다른 풀이

function solution(my_string) {
    return my_string.split('').reverse().join('')
}

split으로 나눠주면 자동으로 배열로 저장되고('jaron' => ['j','a','r','o','n']), 다시 join을 이용하여 따옴표 안에 넣어준다.

comment