코딩테스트 문제풀이/프로그래머스

[프로그래머스] 고득점 Kit 완전 탐색

itaeiou 2022. 3. 14. 15:59
반응형

42840 모의고사

https://programmers.co.kr/learn/courses/30/lessons/42840

 

코딩테스트 연습 - 모의고사

수포자는 수학을 포기한 사람의 준말입니다. 수포자 삼인방은 모의고사에 수학 문제를 전부 찍으려 합니다. 수포자는 1번 문제부터 마지막 문제까지 다음과 같이 찍습니다. 1번 수포자가 찍는

programmers.co.kr

20220314 javascript 풀이

function solution(answers) {
    var answer = [];
    const stu1 = [1,2,3,4,5];
    const stu2 = [2,1,2,3,2,4,2,5];
    const stu3 = [3,3,1,1,2,2,4,4,5,5];
    let cnt = [0,0,0];
    
    for(let i=0; i<answers.length; i++) {
        if(answers[i] === stu1[i%5]) cnt[0]++;
        if(answers[i] === stu2[i%8]) cnt[1]++;
        if(answers[i] === stu3[i%10]) cnt[2]++;
    }
    
    let max = Math.max(...cnt);
    cnt.forEach((v,i) => {
        if(v === max) answer.push(i+1);
    })
    
    return answer;
}

 

42839 소수 찾기

https://programmers.co.kr/learn/courses/30/lessons/42839

 

코딩테스트 연습 - 소수 찾기

한자리 숫자가 적힌 종이 조각이 흩어져있습니다. 흩어진 종이 조각을 붙여 소수를 몇 개 만들 수 있는지 알아내려 합니다. 각 종이 조각에 적힌 숫자가 적힌 문자열 numbers가 주어졌을 때, 종이

programmers.co.kr

20220323 javascript 풀이

function solution(numbers) {
    let answer = 0;
    let set = new Set();
    numbers = numbers.split("");
    
    getPermutation("", numbers, set);
    
    set.forEach(v => {
        if(v < 2) return;
        for(let i=2; i<v; i++) {
            if(v % i == 0) return;
        }
        answer++;
    })
    
    return answer;
}

const getPermutation = (cur, rest, set) => {
    rest.forEach((v, i) => {
        let next = cur + v;
        let next_rest = [...rest.slice(0, i), ...rest.slice(i+1)];
        
        set.add(Number(next));
        getPermutation(next, next_rest, set);
    })
}
반응형