[MWU] Week9_Day3 공부 요약

정현식·2023년 9월 5일

MwuVacation9

목록 보기
3/3

프로그래머스 코딩 문제

  • 세 개의 구분자
function solution(myStr) {
    var answer = [];
    let arr =[];
    for(let i =0; i < myStr.length; i++){
        if(myStr[i] !== 'a' && myStr[i] !== 'b' && myStr[i] !== 'c'){
            arr.push(myStr[i])
        }else{
            arr.push(0)
        }
    }
    let tmp = arr.join('').split(0);
    let count = 0;
    for(let i=0; i < tmp.length; i++){
        if(tmp[i] !==''){
            answer.push(tmp[i])
            count++
        }
    }
    if(count ==0){
        answer.push('EMPTY')
    }
    return answer
}
  • 배열의 길이를 2의 거듭제곱으로 만들기
function solution(arr) {
    var answer = [];
    for(let i = 0; i <= 10; i++){
        if(arr.length === 2**i){
            break;
        }
        else if(arr.length < 2**i){
            let dif = 2**i - arr.length;
            for(let j = 0; j < dif; j++){
                arr.push(0);
            }
        }
        break;
    }
    return arr;
}
  • 문자열이 몇 번 등장하는지 세기
function solution(myString, pat) {
    var answer = 0;
    for(let i =0; i<myString.length; i++){
        let tmp='';
        for(let j=i; j<pat.length+i; j++){
            tmp += myString[j];
        }
        if(tmp == pat){
         answer++   
        }
    }
    return answer;
}
  • 2의 영역
function solution(arr) {
    var answer = [];
    let tmp = [];
    for(let i =0; i<arr.length; i++){
        if(arr[i] == 2){
            tmp.push(i);
        }
    }
    for(let i=tmp[0]; i <= tmp[tmp.length-1]; i++){
        answer.push(arr[i])
    }
    if(answer[0] == null){
        answer.push(-1)
    }
    return answer;
}
  • 수열과 구간 쿼리4
function solution(arr, queries) {
    var answer = arr;   
    for(let i =0; i<queries.length; i++){
        for(let j=queries[i][0]; j<=queries[i][1]; j++ ){
            if(j % queries[i][2] == 0 ){
                answer[j] += 1
          //      console.log(j)
            }
        }
        //console.log('and')
    }
    return answer;
}
  • 리스트 자르기
function solution(n, slicer, num_list) {
    var answer = [];
    if(n==1){
        for(let i =0; i <= slicer[1]; i++){
            answer.push(num_list[i]);
        }
    }else if (n==2){
        for(let i=slicer[0]; i <= num_list.length-1;i++ ){
            answer.push(num_list[i]);
        }
    }else if (n==3){
        for(let i =slicer[0]; i<=slicer[1];i++){
            answer.push(num_list[i])
        }
    }else if (n==4){
        for(let i =slicer[0]; i<=slicer[1]; i+=slicer[2]){
            answer.push(num_list[i])
        }
    }
    return answer;
}
  • 이진수 더하기
profile
novice

0개의 댓글