20주차 알고리즘

이동규·2023년 10월 1일

코테

목록 보기
11/22

const solution = (d=[], budget)=>{
    let result =0;
    d.sort((a,b)=>a-b);
    d.forEach((e)=>{
        if (budget-e >=0) {
            ++result;
            budget -=e; 

        }
    });
    
    return result;
}

function solution(t, p) {
    let str;
    let answer = 0;
    let len = p.length;

    for (let i = 0; i < t.length-len+1; i++) {
        str = t.slice(i, i+len);
        if (str <= p) answer++;
    }
    return answer
}

const solution=(number = [])=> {
    let answer = 0;
    for (let i = 0; i < number.length-2; i++) {
        for (let j = i+1; j < number.length-1; j++) {
            for (let k = j+1; k < number.length; k++) {
               if (number[i]+number[j]+number[k] === 0 ) {
                 ++answer;
               }
                
            }
            
        }
        
    }
    return answer;
}

function solution(s, skip, index) {
    let ans = ""
    let arr = s.split("")
    // a: 97 z: 122
    let skipArr = skip
    arr.map(item => {
        let a = item.charCodeAt()
        for(let i = 0; i < index; i++){
            ++a
            if(a > 122){
                a = 97
            }
            while(skip.includes(String.fromCodePoint(a))) {
                ++a;
                if(a > 122){
                a = 97
                }
            }
        }
        ans = ans + String.fromCodePoint(a)
    })
    return ans
}

function solution(new_id) {
    // 1단계 대문자를 소문자로 변환
    new_id = new_id.toLowerCase();
    // 2단계 특수문자 제거
    new_id= new_id.replace(/[!@#*]/g,"");
    // 3단계 ..이상 반복되면 .으로 변환 
    new_id= new_id.replace(/\.{2,}/g,".");
    // 4단계 처음과 끝에 .점이면 제거
    new_id= new_id.replace(/^\.|\.$/g,"");
    if (new_id === "") {
        new_id = 'a';
    }
  
    if (new_id.length>= 16) {
        new_id = new_id.slice(0,15).replace(/\.$/g,"");
    }
  
    while (new_id.length <= 2) {
        new_id+=new_id[new_id.length-1];
    }

   return new_id;

0개의 댓글