프로그래머스 - 2019 카카오 개발자 겨울 인턴십 Lv3

불량 사용자 ( _JS )

 

문제 설명

 

제한 사항

 

입출력 예


문제 링크

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

 

코딩테스트 연습 - 불량 사용자

개발팀 내에서 이벤트 개발을 담당하고 있는 "무지"는 최근 진행된 카카오이모티콘 이벤트에 비정상적인 방법으로 당첨을 시도한 응모자들을 발견하였습니다. 이런 응모자들을 따로 모아 불량

programmers.co.kr


코드

2022. 01. 11.

function solution(user_id, banned_id) {
    
const prediction_list = banned_id.map( banned => user_id.filter( user => {
        if( user.length !== banned.length ){
            // 길이가 다르면 제거
            return false;
        }
        else{
            // 길이가 같음
            for(let i = 0 ; i < banned.length ; i++){
                if( banned[i] !== '*' && user[i] !== banned[i] ){
                    // banned[i] 값이 *이 아닌데 user[i]랑 값이 동일하지 않으면 제거
                    return false;
                }
            }
            return true;
        }
    }));
const ansList = {};
    const choose = (idx = 0, choosed = []) => {
        if (idx === prediction_list.length) {
            choosed.sort();
            ansList[choosed.join('')] = true;
            return
        }

        prediction_list[idx].forEach(s => {
            if (!choosed.includes(s))
                choose(idx + 1, [...choosed, s])
        })
    }
    choose()
    return Object.keys(ansList).length;
}

 


728x90

프로그래머스 - 정렬 Lv2

가장 큰 수 ( _JS )

 

문제 설명

 

제한 조건

 

입출력 예


문제 링크

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

 

코딩테스트 연습 - 가장 큰 수

0 또는 양의 정수가 주어졌을 때, 정수를 이어 붙여 만들 수 있는 가장 큰 수를 알아내 주세요. 예를 들어, 주어진 정수가 [6, 10, 2]라면 [6102, 6210, 1062, 1026, 2610, 2106]를 만들 수 있고, 이중 가장 큰

programmers.co.kr


코드

2022. 01. 11.

function solution(numbers) {
    
    var answer = numbers.map(c=> c + '').
    				sort((a,b) => (b+a) - (a+b)).join('');
    
    return answer;
}

728x90

프로그래머스 - 완전탐색 Lv1

모의고사 ( _JS )

문제 설명

 

제한 조건

 

입출력 예시

 

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

 

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

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

programmers.co.kr


코드

2022.01.11.

function solution(answers) {
    var answer = [];
    
    const answer1 = [ 1,2,3,4,5 ];
    const answer2 = [ 2,1,2,3,2,4,2,5];
    const answer3 = [ 3,3,1,1,2,2,4,4,5,5 ];
    
    const Correct1 = compare(answers, answer1);
    const Correct2 = compare(answers, answer2);
    const Correct3 = compare(answers, answer3);

    const CorrectArray = [ Correct1, Correct2, Correct3 ];
    
    const correctMax = Math.max(...CorrectArray);
    
    CorrectArray.forEach(function(answers, index){
        if( correctMax === answers ){
            answer.push(index+1);
        }         
    });
    
    return answer;
}

function compare(answers, studentAnswer){
  
    let correct = 0;
    
    answers.forEach(function(answer, index){
        index = index % studentAnswer.length
        if( answer === studentAnswer[index]){
            correct++;
        }
    
    });
    return correct;
};

코드 설명

728x90

+ Recent posts