프로그래머스: 코딩 기초 트레이닝 javascript 31~50문제

배열 만들기 1

https://school.programmers.co.kr/learn/courses/30/lessons/181901

function solution(n, k) {
    let arr = []
    for (let i = 1; i <= n; i++) {
        if (i % k === 0) {
            arr.push(i)
        }
    }
    return arr;
}

 

 


 

수 조작하기 1

https://school.programmers.co.kr/learn/courses/30/lessons/181926

function solution(n, control) {
    for (let i of control) {
        i === "w" ? n += 1
        : i === "s" ? n -= 1
        : i === "d" ? n += 10
        : n -= 10
    }
    return n;
}

 


 

 

카운드 다운

https://school.programmers.co.kr/learn/courses/30/lessons/181899

function solution(start, end) {
    return Array.from({length: start - end + 1}, ()=> start--);
}

 

 

 


 

원하는 문자열 찾기

https://school.programmers.co.kr/learn/courses/30/lessons/181878

function solution(myString, pat) {
    myString = myString.toLowerCase()
    pat = pat.toLowerCase()
    return myString.includes(pat) ? 1 : 0;
}

 

 


 

이어 붙인 수

https://school.programmers.co.kr/learn/courses/30/lessons/181928

function solution(num_list) {
    let odd = ""
    let even = ""
    for (let i of num_list) {
        i % 2 === 0 ? even += String(i) : odd += String(i)
    }
    return Number(odd) + Number(even);
}

 

 


 

배열에서 문자열 대소문자 변환하기

https://school.programmers.co.kr/learn/courses/30/lessons/181875

function solution(strArr) {
    for (let i = 0; i < strArr.length; i++) {
        if (i % 2 === 0) {
            strArr[i] = strArr[i].toLowerCase()
        } else {
            strArr[i] = strArr[i].toUpperCase()
        }
    }
    return strArr;
}

다른 사람 풀이

function solution(strArr) {
    return strArr.map((v, i) => i % 2 === 0 ? v.toLowerCase() : v.toUpperCase());
}

map 함수에다가 i를 추가해서 이와 깉이 풀수도 있옸다

 

 


 

 

마지막 두 원소

https://school.programmers.co.kr/learn/courses/30/lessons/181927

function solution(num_list) {
    let len = num_list.length
    if (num_list[len-1] > num_list[len-2]) {
        num_list.push(num_list[len-1] - num_list[len-2])
    } else {
        num_list.push(num_list[len-1]*2)
    }
    return num_list
}

다른 사람 풀이

function solution(num_list) {
    const [a, b] = [...num_list].reverse();
    return [...num_list, a > b ? (a-b):a*2];
}

 

[a,b] = 어떤 배열

이런 식으로 하면 배열의 0번째, 1번째 인덱스가 [a,b]에 저장이 되는 건가 보다

 


 

글자 이어 붙여 문자열 만들기

https://school.programmers.co.kr/learn/courses/30/lessons/181915

function solution(my_string, index_list) {
    index_list = index_list.map(v => v = my_string[v])
    return index_list.join("");
}

 

 


 

꼬리 문자열

https://school.programmers.co.kr/learn/courses/30/lessons/181841

function solution(str_list, ex) {
    return str_list.filter(v => v.includes(ex) === false).join("");
}

 

 


 

n개 간격의 원소들

https://school.programmers.co.kr/learn/courses/30/lessons/181888

function solution(num_list, n) {
    let ans = []
    for (let i = 0; i < num_list.length; i += n) {
        ans.push(num_list[i])    
    }
    return ans
}

 

 

 


 

특정한 문자를 대문자로 바꾸기

https://school.programmers.co.kr/learn/courses/30/lessons/181873

 

풀이1

function solution(my_string, alp) {
    return [...my_string].map((v) => v === alp ? v.toUpperCase() : v).join("");
}

풀이2

function solution(my_string, alp) {
    const r = new RegExp(alp,'g');
    return my_string.replace(r, alp.toUpperCase())
}

풀이3

function solution(my_string, alp) {
    return my_string.replaceAll(alp, alp.toUpperCase())
}

 

 


 

홀수 vs 짝수

https://school.programmers.co.kr/learn/courses/30/lessons/181887

function solution(num_list) {
    let odd = 0;
    let even = 0;
    for (let i = 0; i < num_list.length; i++) {
        (i % 2 === 0) ? odd += num_list[i] : even += num_list[i]
    }
    return Math.max(odd,even)
}

 

 

 


 

문자열 곱하기

https://school.programmers.co.kr/learn/courses/30/lessons/181940

function solution(my_string, k) {
    let answer = ""
    for (let i = 0; i < k; i++) {
        answer += my_string
    }
    return answer;
}

다른 사람 풀이

function solution(my_string, k) {
    return my_string.repeat(k)
}

repeat()함수 이용

 

 


 

뒤에서 5등 위로

https://school.programmers.co.kr/learn/courses/30/lessons/181852

function solution(num_list) {
    return num_list.sort((a, b) => a - b).slice(5);
}

 

 


 

 

더 크게 합치기

https://school.programmers.co.kr/learn/courses/30/lessons/181939

function solution(a, b) {
    a = String(a)
    b = String(b)
    return a + b >= b + a ? Number(a + b) : Number(b + a);
}

 

다른 사람 풀이

function solution(a, b) {
    return Math.max(Number(`${a}${b}`), Number(`${b}${a}`))
}

 

 

 

 

 


 

 

 

배열의 길이에 따라 다른 연산하기

https://school.programmers.co.kr/learn/courses/30/lessons/181854

function solution(arr, n) {
    return arr.map((v,i) => arr.length % 2 === 0 && i % 2 !== 0 ? v + n : arr.length % 2 !== 0 && i % 2 === 0 ? v + n : v);
}

 

 

 


 

뒤에서 5등까지

https://school.programmers.co.kr/learn/courses/30/lessons/181853

function solution(num_list) {
    return num_list.sort((a, b) => a - b).slice(0, 5);
}

 

 

 


 

공백으로 구분하기 2

https://school.programmers.co.kr/learn/courses/30/lessons/181868

function solution(my_string) {
    return my_string.split(" ").filter(v => v !== "");
}

 

 

 


 

문자열 바꿔서 찾기

https://school.programmers.co.kr/learn/courses/30/lessons/181864

function solution(myString, pat) {
    return [...myString].map(v => v === "A" ? "B" : "A").join("").includes(pat) ? 1 : 0;
}

 

 

 


 

0 떼기

https://school.programmers.co.kr/learn/courses/30/lessons/181847

function solution(n_str) {
    return Number(n_str).toString();
}

 

 

 

 

 

 

 

comment