JavsScript - 프로그래머스 Lv1

수현·2022년 12월 16일
0

Coding Test

목록 보기
5/14
post-thumbnail

📕 문자열을 정수로 바꾸기

프로그래머스 문자열을 정수로 바꾸기

문제

문자열 s를 숫자로 변환한 결과를 반환하는 함수, solution을 완성하세요.

코드

function solution(s) {
    var answer = 0;
    
    // 1)
    answer = Number(s)

    // 2)
    answer = s/1

    // 3)
    answer = +s
    
    return answer;
}

📕 정수 내림차순으로 배치하기

프로그래머스 정수 내림차순으로 배치하기

문제

함수 solution은 정수 n을 매개변수로 입력받습니다. n의 각 자릿수를 큰것부터 작은 순으로 정렬한 새로운 정수를 리턴해주세요. 예를들어 n이 118372면 873211을 리턴하면 됩니다.

코드

function solution(n) {
    var answer = 0;
    
    answer = n.toString().split("").sort().reverse().join("")
    
    return parseInt(answer);
}

📘 풀이

1. toString() : 정수 → 문자열 변환
2. split(구분문자) : 한 숫자씩 분리
3. sort().reverse() : 내림차순으로 정렬
4. join(구분문자) : 문자열 → 정수 변환

📕 핸드폰 번호 가리기

프로그래머스 핸드폰 번호 가리기

문제

프로그래머스 모바일은 개인정보 보호를 위해 고지서를 보낼 때 고객들의 전화번호의 일부를 가립니다.
전화번호가 문자열 phone_number로 주어졌을 때, 전화번호의 뒷 4자리를 제외한 나머지 숫자를 전부 *으로 가린 문자열을 리턴하는 함수, solution을 완성해주세요.

코드

function solution(phone_number) {
    var answer = '';
    var n = 0;
    
    n = phone_number.length - 4;
    
    answer ="*".repeat(n) + phone_number.substring(n);
    return answer;
}

📘 풀이

repeat(숫자) : 숫자 만큼 반복 
substring(시작, (끝)) : 시작 인덱스부터 끝까지 부분 문자열 반환 

📕 나누어 떨어지는 숫자 배열

프로그래머스 나누어 떨어지는 숫자 배열

문제

array의 각 element 중 divisor로 나누어 떨어지는 값을 오름차순으로 정렬한 배열을 반환하는 함수, solution을 작성해주세요.
divisor로 나누어 떨어지는 element가 하나도 없다면 배열에 -1을 담아 반환하세요.

코드

function solution(arr, divisor) {
    var answer = [];
    
    for (i=0; i<arr.length; i++) {
        if (arr[i] % divisor === 0) {
            answer.push(arr[i]);
        }
    }
    if (answer.length === 0){
        answer = [-1];
    }
    
    answer.sort((a,b) => a-b);

    return answer;
}

📘 풀이

sort((a,b) => a-b) : 오름차순 정렬

📕 제일 작은 수 제거하기

프로그래머스 제일 작은 수 제거하기

문제

정수를 저장한 배열, arr 에서 가장 작은 수를 제거한 배열을 리턴하는 함수, solution을 완성해주세요. 단, 리턴하려는 배열이 빈 배열인 경우엔 배열에 -1을 채워 리턴하세요. 예를들어 arr이 [4,3,2,1]인 경우는 [4,3,2]를 리턴 하고, [10]면 [-1]을 리턴 합니다.

코드

function solution(arr) {
    var answer = [];
    
    if (arr.length === 1){
        answer = [-1];
    }
    else{
        arr.splice(arr.indexOf(Math.min(...arr)),1);
        answer = arr;
    }
    return answer;
}

📘 풀이

1. Math.min(...arr) : 최솟값 구하기
2. arr.indexOf() : 최솟값 위치 구하기
3. arr.splice(시작위치, 개수) : 시작위치부터 개수만큼 삭제 후 반환 

📕 문자열 내림차순으로 배치하기

프로그래머스 문자열 내림차순으로 배치하기

문제

문자열 s에 나타나는 문자를 큰것부터 작은 순으로 정렬해 새로운 문자열을 리턴하는 함수, solution을 완성해주세요.
s는 영문 대소문자로만 구성되어 있으며, 대문자는 소문자보다 작은 것으로 간주합니다.

코드

function solution(s) {
    var answer = "";
    
    answer = s.split("").sort().reverse().join("");
    
    return answer;
}

📘 풀이

1. split("") : 문자열을 원소 한개씩 배열로 바꿈
2. sort().reverse() : 배열 내림차순 정렬
3. join("") : 배열을 문자열로 바꿈

📕 문자열 다루기 기본

프로그래머스 문자열 다루기 기본

문제

문자열 s의 길이가 4 혹은 6이고, 숫자로만 구성돼있는지 확인해주는 함수, solution을 완성하세요. 예를 들어 s가 "a234"이면 False를 리턴하고 "1234"라면 True를 리턴하면 됩니다.

코드

function solution(s) {
    var answer = false;
    
    // 숫자에 e가 붙으면 지수로 인식하여 문자를 숫자로 판단
    if (s.length === 4 || s.length === 6){
        if (s == parseInt(s)){
            answer = true;
        }
    }
    return answer;
}

📘 풀이

숫자 확인

1. isNaN() : 숫자가 아니면 True (Not a Number)
2. !!Number() : 숫자이면 True
3. parseInt() : 숫자로 변환 

📕 행렬의 덧셈

프로그래머스 행렬의 덧셈

문제

행렬의 덧셈은 행과 열의 크기가 같은 두 행렬의 같은 행, 같은 열의 값을 서로 더한 결과가 됩니다. 2개의 행렬 arr1과 arr2를 입력받아, 행렬 덧셈의 결과를 반환하는 함수, solution을 완성해주세요.

코드

function solution(arr1, arr2) {
    var answer = [];

    for (i=0; i<arr1.length; i++){
        let row = [];
        for (j=0; j<arr1[0].length; j++){
            row.push(arr1[i][j] + arr2[i][j]);
        }
        answer.push(row)
    }
    
    return answer;
}

📕 최대공약수와 최소공배수

프로그래머스 최대공약수와 최소공배수

문제

두 수를 입력받아 두 수의 최대공약수와 최소공배수를 반환하는 함수, solution을 완성해 보세요. 배열의 맨 앞에 최대공약수, 그다음 최소공배수를 넣어 반환하면 됩니다. 예를 들어 두 수 3, 12의 최대공약수는 3, 최소공배수는 12이므로 solution(3, 12)는 [3, 12]를 반환해야 합니다.

코드

function solution(n, m) {
    var answer = [];
    var G = 0; // 최대공약수
    var L = 0; // 최소공배수 
    
    num = n > m ? n : m;
    
    for (i=1; i<=num; i++){
        if (n % i === 0 && m % i === 0){ // 최대공약수
            G = i;
        }
    }
    
    L = n * m / G;
    
    answer = [G, L];
    return answer;
}

📘 풀이

두 수의 곱 = 최대공약수 * 최소공배수 

📕 이상한 문자 만들기

프로그래머스 이상한 문자 만들기

문제

문자열 s는 한 개 이상의 단어로 구성되어 있습니다. 각 단어는 하나 이상의 공백문자로 구분되어 있습니다. 각 단어의 짝수번째 알파벳은 대문자로, 홀수번째 알파벳은 소문자로 바꾼 문자열을 리턴하는 함수, solution을 완성하세요.

코드

function solution(s) {
    var answer = '';
    
    words = s.split(' ');
    
    for (let i = 0; i < words.length; i++) {
        for(let j = 0; j < words[i].length; j++) {
            if(j % 2 === 0) {
                answer += words[i][j].toUpperCase();
            } else {
                answer += words[i][j].toLowerCase();
            }
        }
        if (i < words.length -1) {
            answer += ' ';
        }
    }
    return answer;
}

📘 풀이

1. str.toUpperCase() : 대문자 변환
2. str.toLowerCase() : 소문자 변환 

📕 3진법 뒤집기

프로그래머스 3진법 뒤집기

문제

자연수 n이 매개변수로 주어집니다. n을 3진법 상에서 앞뒤로 뒤집은 후, 이를 다시 10진법으로 표현한 수를 return 하도록 solution 함수를 완성해주세요.

코드

function solution(n) {
    var answer = 0;
    
    answer = n.toString(3).split("").reverse().join("")
    
    return parseInt(answer, 3);
}

📘 풀이

1. toString(3) : 10진법을 3진법으로 변환
2. split("") : 원소 하나하나 배열에 넣어 변환
3. reverse() : 역순 만들기
4. join("") : 공백 없는 문자열로 변환
5. parseInt(str, 3) : 3진법 문자열을 10진법으로 변환 

📕

프로그래머스

문제

코드

📘 풀이

📕

프로그래머스

문제

코드

📘 풀이

📕

프로그래머스

문제

코드

📘 풀이

📕

프로그래머스

문제

코드

📘 풀이

📕

프로그래머스

문제

코드

📘 풀이

📕

프로그래머스

문제

코드

📘 풀이

📕

프로그래머스

문제

코드

📘 풀이

📕

프로그래머스

문제

코드

📘 풀이

📕

프로그래머스

문제

코드

📘 풀이

📕

프로그래머스

문제

코드

📘 풀이

📖출처📖

프로그래머스 JavaScript

profile
Notion으로 이동 (https://24tngus.notion.site/3a6883f0f47041fe8045ef330a147da3?v=973a0b5ec78a4462bac8010e3b4cd5c0&pvs=4)

0개의 댓글