프로그래머스 - 정렬 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/64061

 

코딩테스트 연습 - 크레인 인형뽑기 게임

[[0,0,0,0,0],[0,0,1,0,3],[0,2,5,0,1],[4,2,4,4,2],[3,5,1,3,1]] [1,5,3,5,1,2,1,4] 4

programmers.co.kr

 

제한 사항

  • board 배열은 2차원 배열로 크기는 "5 x 5" 이상 "30 x 30" 이하입니다.
  • board의 각 칸에는 0 이상 100 이하인 정수가 담겨있습니다.
    • 0은 빈 칸을 나타냅니다.
    • 1 ~ 100의 각 숫자는 각기 다른 인형의 모양을 의미하며 같은 숫자는 같은 모양의 인형을 나타냅니다.
  • moves 배열의 크기는 1 이상 1,000 이하입니다.
  • moves 배열 각 원소들의 값은 1 이상이며 board 배열의 가로 크기 이하인 자연수입니다.
  •  

입출력 예


코드

2022.01.17.

function solution(board, moves) {
    var answer = 0;

    let stack = [];

    moves.forEach( move => {
        let flag = true;
        let stackLen = stack.length;
        stack = SameChecking(stack);

        if( stackLen !== stack.length ){
            answer += 2;
        }

       board.forEach( x => {
           if(flag){
               if( x[move-1] !== 0 ){
                   stack.push(x[move-1]);
                   x[move-1] = 0;
                   flag = false;
               }
           }
           else{
               return false;
           }
       });
    });

    return answer;
}

function SameChecking(stack){
    let prevItem = 0;
    stack.forEach( ( item, index ) => {
        if( prevItem === item ){
            stack.splice(index-1, 2);
            return stack;
        }

        prevItem = item;

    });

    return stack;
}

 

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