본문 바로가기
프로그래머스 코딩 테스트

프로그래머스 : JavaScript 알고리즘 100일 챌린지 47일차

by dongjin6539 2023. 7. 1.
728x90
반응형

프로그래머스 : JavaScript 알고리즘 100일 챌린지 47일차

 

코딩 기초 트레이닝 Day47

 

 

1. 0떼기 : 정수로 이루어진 문자열 n_str이 주어질 때, n_str의 가장 왼쪽에 처음으로 등장하는 0들을 뗀 문자열을 return하도록 solution 함수를 완성해주세요.

function solution(n_str) {
    var answer = '';
    return answer;
}

길라잡이

  • 데이터를 수정해서 답을 구해보세요.
  • 예시
n_str result
"0010" "10"
"854020" "854020"

 

답 확인하기
function solution(n_str) {
    let i = parseInt(n_str);
    let answer = i.toString();
    return answer;
}

 

해설 확인하기

코드는 다음과 같은 기능을 수행하는 JavaScript 함수입니다:

n_str이라는 매개변수를 받습니다. 이는 문자열 형태의 숫자를 나타냅니다.

parseInt() 함수를 사용하여 n_str을 정수로 변환합니다. 변환된 정수를 변수 i에 저장합니다.

toString() 메서드를 사용하여 i를 다시 문자열로 변환합니다. 변환된 문자열을 변수 answer에 저장합니다.

answer를 반환합니다.

즉, 이 함수는 주어진 문자열 n_str을 정수로 변환한 다음, 다시 문자열로 변환하여 반환합니다. 예를 들어, n_str이 "123"인 경우, 함수는 정수 123을 문자열 "123"으로 변환하여 반환합니다.

 

2. 두 수의 합 : 0 이상의 두 정수가 문자열 ab로 주어질 때, a + b의 값을 문자열로 return 하는 solution 함수를 작성해 주세요.

function solution(a, b) {
    var answer = '';
    return answer;
}

길라잡이

  • 데이터를 수정해서 답을 구해보세요.
  • 예시
a b result
"582" "734" "1316"
"18446744073709551615" "287346502836570928366" "305793246910280479981"
"0" "0" "0"

 

답 확인하기
function solution(a, b) {
    let sum = BigInt(a) + BigInt(b);
    return sum.toString();
}

// BigInt = 원시 값이 안정적으로 나타낼 수 있는 최대치인 2^53 - 1보다 큰 정수를 표현할 수 있는 내장 객체입니다.

 

해설 확인하기

함수는 다음과 같은 기능을 수행합니다.

함수는 두 개의 매개변수 a와 b를 받습니다. 이 두 매개변수는 문자열 형태의 숫자를 나타냅니다.

BigInt() 함수를 사용하여 문자열 형태의 a와 b를 BigInt 형태로 변환합니다. BigInt는 JavaScript에서 매우 큰 정수를 표현하기 위한 내장 객체입니다.

BigInt(a) + BigInt(b)를 통해 a와 b를 더한 결과를 구합니다.

toString() 메서드를 사용하여 BigInt 형태의 합을 다시 문자열로 변환합니다.

변환된 문자열을 반환합니다.

따라서, 이 함수는 주어진 두 개의 문자열 숫자 a와 b를 더한 결과를 문자열로 반환합니다. BigInt를 사용하여 정확한 계산 결과를 얻을 수 있으며, 반환되는 값은 항상 문자열 형태입니다.

 

3. 문자열로 변환 : 정수 n이 주어질 때, n을 문자열로 변환하여 return하도록 solution 함수를 완성해주세요.

function solution(n) {
    var answer = '';
    return answer;
}

길라잡이

  • 데이터를 수정해서 답을 구해보세요.
  • 예시
n result
123 "123"
"2573" "2573"

 

답 확인하기
function solution(n) {
    return String(n);
}

 

해설 확인하기

함수는 다음과 같은 기능을 수행합니다:

함수는 하나의 매개변수 n을 받습니다. 이 매개변수는 어떤 값이든 될 수 있습니다.

String() 함수를 사용하여 매개변수 n을 문자열로 변환합니다.

변환된 문자열을 반환합니다.

즉, 이 함수는 입력받은 값을 문자열로 변환하여 반환하는 간단한 기능을 수행합니다. 매개변수 n이 숫자, 객체, 배열 또는 다른 타입의 값이더라도 모두 문자열로 변환하여 반환됩니다.

 

4. 배열의 원소 삭제하기 : 정수 배열 arr과 delete_list가 있습니다. arr의 원소 중 delete_list의 원소를 모두 삭제하고 남은 원소들은 기존의 arr에 있던 순서를 유지한 배열을 return 하는 solution 함수를 작성해 주세요.

function solution(arr, delete_list) {
    var answer = [];
    return answer;
}

길라잡이

  • 데이터를 수정해서 답을 구해보세요.
  • 예시
arr deletr_list result
[293, 1000, 395, 678, 94] [94, 777, 104, 1000, 1, 12] [293, 395, 678]
[110, 66, 439, 785, 1] [377, 823, 119, 43] [110, 66, 439, 785, 1]

 

답 확인하기
function solution(arr, delete_list) {
    var answer = [];
    let setA=new Set(arr)
    let setB=new Set(delete_list)

    Set.prototype.difference = function (set) {
        return new Set([...this].filter(v => !set.has(v)));
      };
      
return Array.from(setA.difference(setB));

}

// new Set : 자료형에 관계 없이 원시 값과 객체 참조 모두 유일한 값을 저장할 수 있습니다.

 

해설 확인하기

함수는 다음과 같은 기능을 수행합니다:

함수는 두 개의 매개변수 arr과 delete_list를 받습니다. arr은 배열 형태의 데이터를 나타내고, delete_list는 삭제할 요소들의 배열입니다.

arr을 Set 객체로 변환하여 setA 변수에 저장합니다. Set 객체는 중복되지 않는 유일한 요소들의 집합입니다.

delete_list도 Set 객체로 변환하여 setB 변수에 저장합니다.

Set.prototype.difference 함수를 정의합니다. 이 함수는 현재 Set 객체와 다른 Set 객체의 차집합을 반환하는 역할을 합니다. this는 현재 Set 객체를 나타내고, set은 다른 Set 객체를 나타냅니다

. setA와 setB의 차집합을 구한 후, 그 결과를 배열로 변환하여 반환합니다. Array.from() 메서드를 사용하여 Set 객체를 배열로 변환합니다.

즉, 이 함수는 arr에서 delete_list에 해당하는 요소들을 제외한 나머지 요소들로 이루어진 배열을 반환합니다. 중복된 요소가 제거되며, 순서는 유지됩니다.

 

5. 부분 문자열인지 확인하기 : 부분 문자열이란 문자열에서 연속된 일부분에 해당하는 문자열을 의미합니다. 예를 들어, 문자열 "ana", "ban", "anana", "banana", "n"는 모두 문자열 "banana"의 부분 문자열이지만, "aaa", "bnana", "wxyz"는 모두 "banana"의 부분 문자열이 아닙니다. 문자열 my_string과 target이 매개변수로 주어질 때, target이 문자열 my_string의 부분 문자열이라면 1을, 아니라면 0을 return 하는 solution 함수를 작성해 주세요.

function solution(my_string, target) {
    var answer = 0;
    return answer;
}

길라잡이

  • 데이터를 수정해서 답을 구해보세요.
  • 예시
my_string target result
"banana" "ana" 1
"banana" "wxyz" 0

 

답 확인하기
function solution(num_str) {
   return parseInt(num_str);
}

 

해설 확인하기

함수는 다음과 같은 기능을 수행합니다:

함수는 두 개의 매개변수 my_string과 target을 받습니다. my_string은 문자열이고, target은 탐색할 문자열입니다.

my_string.includes(target)을 사용하여 my_string에 target이 포함되어 있는지 여부를 확인합니다. includes() 함수는 문자열이 특정 문자열을 포함하고 있는지 여부를 불리언 값으로 반환합니다.

Number() 함수를 사용하여 my_string.includes(target)의 불리언 값을 0 또는 1로 변환합니다. true인 경우 1로, false인 경우 0으로 변환됩니다.

변환된 숫자를 반환합니다.

즉, 이 함수는 my_string에 target이 포함되어 있는지 여부를 확인하고, 포함되어 있다면 1을 반환하고 그렇지 않으면 0을 반환합니다.

728x90
반응형