큰 수 만들기

Happhee·2022년 2월 5일
0

[ Lv2 ] programmers

목록 보기
13/32
post-thumbnail

📝 큰 수 만들기

🖥 나의 JS 코드

처음 나의 코드는 문자열을 줄이고,넣고 등을 조작하여서 테스트 10에서 시간초과가 발생하였다

function solution(number, k) {
   let answer= '';
   let check = Math.max(...number.slice(0,k+1).split(''));
     let startIndex = number.indexOf(check);

    
    answer = number.slice(startIndex, number.length);
    
    
    for(let i = 0 ; i< k-startIndex ; i++){
        for(let j = 0 ; j <answer.length-1 ; j++){
            if(answer[j] < answer[j+1]){
                answer = answer.slice(0, j) + answer.slice(j+1, answer.length)
                break;
            }
        }
     
    }
  
    
    if(answer.length > number.length-k){
        answer = answer.slice(0,number.length-k)
    }
    return answer;
}

그래서 스택을 사용하여 이를 해결해보도록 했다

12번 오류가 생긴다면
10000 , 2 , 100을 테스트로 넣어보길 바란다 ㅠㅠ

function solution(number, k) {
   let answer= '';
   let stack = [];
    // 주어진 수의 길이만큼 반복
    for(let i = 0 ; i < number.length ; i++){
      // 스택의 마지막 수가 그 뒤에 넣을 수보다 작으면 스택에서 제거
        while(k> 0 && stack[stack.length-1] < number[i]){
            stack.pop();
            k--;
        }
      // 일단 스택에 넣음
        stack.push(number[i]);
    }
    
  // 12번 오류를 잡기위한 코드
    stack =stack.slice(0, number.length-k);
    return stack.join('');
    
}
profile
즐기면서 정확하게 나아가는 웹프론트엔드 개발자 https://happhee-dev.tistory.com/ 로 이전하였습니다

0개의 댓글