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

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

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

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

 

코딩 기초 트레이닝 Day48

 

 

1. 부분 문자열 : 어떤 문자열 A가 다른 문자열 B안에 속하면 A를 B의 부분 문자열이라고 합니다. 예를 들어 문자열 "abc"는 문자열 "aabcc"의 부분 문자열입니다. 문자열 str1과 str2가 주어질 때, str1이 str2의 부분 문자열이라면 1을 부분 문자열이 아니라면 0을 return하도록 solution 함수를 완성해주세요.

function solution(str1, str2) {
    var answer = 0;
    return answer;
}

길라잡이

  • 데이터를 수정해서 답을 구해보세요.
  • 예시
str1 str2 result
"abc" "aabcc" 1
"tbt" "tbbttb" 0

 

답 확인하기
function solution(str1, str2) {
    let answer = 0;
    if (str2.includes(str1)) {
        answer = 1;
    }
    return answer;
}

 

해설 확인하기

코드는 주어진 str2 문자열이 str1 문자열을 포함하는지 확인하는 JavaScript 함수입니다.

함수의 동작은 다음과 같습니다:

str1과 str2를 입력으로 받습니다.

answer 변수를 0으로 초기화합니다.

str2가 str1을 포함하는지 확인하기 위해 includes() 메서드를 사용합니다. includes() 메서드는 str2에 str1이 포함되어 있으면 true를 반환하고, 그렇지 않으면 false를 반환합니다.

str2가 str1을 포함하면 answer를 1로 설정합니다.

answer 값을 반환합니다.

이 함수는 str2가 str1을 포함하면 1을 반환하고, 그렇지 않으면 0을 반환합니다.

 

2. 꼬리 문자열 : 문자열들이 담긴 리스트가 주어졌을 때, 모든 문자열들을 순서대로 합친 문자열을 꼬리 문자열이라고 합니다. 꼬리 문자열을 만들 때 특정 문자열을 포함한 문자열은 제외시키려고 합니다. 예를 들어 문자열 리스트 ["abc", "def", "ghi"]가 있고 문자열 "ef"를 포함한 문자열은 제외하고 꼬리 문자열을 만들면 "abcghi"가 됩니다. 문자열 리스트 str_list와 제외하려는 문자열 ex가 주어질 때, str_list에서 ex를 포함한 문자열을 제외하고 만든 꼬리 문자열을 return하도록 solution 함수를 완성해주세요.

function solution(str_list, ex) {
    var answer = '';
    return answer;
}

길라잡이

  • 데이터를 수정해서 답을 구해보세요.
  • 예시
str_list ex result
["abc", "def", "ghi"] "ef" "abcghi"
["abc", "bbc", "cbc"] "c" ""

 

답 확인하기
function solution(str_list, ex) {
    let answer = "";
    for (let i = 0; i < str_list.length; i++) {
        if (!str_list[i].includes(ex)) {
            answer += str_list[i];
        }
    }
    return answer;
}

 

해설 확인하기

함수는 str_list 배열에 있는 문자열 중에서 ex를 포함하지 않는 문자열들을 모두 결합하여 반환하는 JavaScript 함수입니다.

함수의 동작은 다음과 같습니다:

str_list 배열과 ex 문자열을 입력으로 받습니다.

answer 변수를 빈 문자열로 초기화합니다.

str_list 배열을 반복하면서 각 요소를 확인합니다.

현재 요소가 ex를 포함하지 않는 경우에만 answer에 해당 요소를 추가합니다.

반복이 완료된 후, answer 값을 반환합니다.

이 함수는 str_list 배열에서 ex를 포함하지 않는 문자열들을 결합하여 반환합니다.

 

3. 정수 찾기 : 정수 리스트 num_list와 찾으려는 정수 n이 주어질 때, num_list안에 n이 있으면 1을 없으면 0을 return하도록 solution 함수를 완성해주세요.

function solution(num_list, n) {
    var answer = 0;
    return answer;
}

길라잡이

  • 데이터를 수정해서 답을 구해보세요.
  • 예시
num_list n result
[1, 2, 3, 4, 5] 3 1
[15, 98, 23, 2, 15] 20 0

 

답 확인하기
function solution(num_list, n) {
    let answer = 0;

    for (let i = 0; i < num_list.length; i++) {
        if (num_list[i] === n) {
            answer = 1;
        }
    }
    return answer;
}

 

해설 확인하기

함수는 num_list 배열에서 n과 일치하는 요소가 있는지 확인하는 JavaScript 함수입니다.

함수의 동작은 다음과 같습니다:

num_list 배열과 n 값을 입력으로 받습니다.

answer 변수를 0으로 초기화합니다.

num_list 배열을 반복하면서 각 요소를 확인합니다.

현재 요소가 n과 일치하는 경우, answer 값을 1로 설정합니다.

반복이 완료된 후, answer 값을 반환합니다.

이 함수는 num_list 배열에서 n과 일치하는 요소가 존재하면 1을 반환하고, 그렇지 않으면 0을 반환합니다.

 

4. 주사위 게임1 : 1부터 6까지 숫자가 적힌 주사위가 두 개 있습니다. 두 주사위를 굴렸을 때 나온 숫자를 각각 ab라고 했을 때 얻는 점수는 다음과 같습니다.

  • a와 b가 모두 홀수라면 a2 + b2 점을 얻습니다.
  • a와 b 중 하나만 홀수라면 2 × (a + b) 점을 얻습니다.
  • a와 b 모두 홀수가 아니라면 |a - b| 점을 얻습니다.

두 정수 a와 b가 매개변수로 주어질 때, 얻는 점수를 return 하는 solution 함수를 작성해 주세요.

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

길라잡이

  • 데이터를 수정해서 답을 구해보세요.
  • 예시
a b result
3 5 34
6 1 14
2 4 2

 

답 확인하기
function solution(a, b) {
    let answer = 0;
    
    if (a % 2 === 1 && b % 2 === 1) {
        answer = a * a + b * b;
    } else if (a % 2 === 1 || b % 2 === 1) {
        answer = 2 * (a + b);
    } else {
        answer = Math.abs(a - b);
    }
    
    return answer;
}

 

해설 확인하기

함수는 주어진 두 정수 a와 b에 대해 다음과 같은 계산을 수행하여 결과를 반환하는 JavaScript 함수입니다.

a와 b가 모두 홀수일 경우, answer는 a의 제곱과 b의 제곱의 합입니다.

a와 b 중 하나가 홀수인 경우, answer는 a와 b의 합에 2를 곱한 값입니다.

a와 b가 모두 짝수인 경우, answer는 a와 b의 차이의 절댓값입니다.

함수는 계산된 answer 값을 반환합니다.

 

5. 날짜 비교하기 : 정수 배열 date1과 date2가 주어집니다. 두 배열은 각각 날짜를 나타내며 [year, month, day] 꼴로 주어집니다. 각 배열에서 year는 연도를, month는 월을, day는 날짜를 나타냅니다. 만약 date1이 date2보다 앞서는 날짜라면 1을, 아니면 0을 return 하는 solution 함수를 완성해 주세요.

function solution(date1, date2) {
    var answer = 0;
    return answer;
}

길라잡이

  • 데이터를 수정해서 답을 구해보세요.
  • 예시
date1 date2 result
[2021, 12, 28] [2021, 12, 19] 1
[1024, 10, 24] [1024, 10, 24] 0

 

답 확인하기
function solution(date1, date2) {
    return new Date(date1)<new Date(date2)? 1: 0;
}

// Date : 시간의 특정 지점을 나타내는 Date 객체를 플랫폼에 종속되지 않는 형태로 생성합니다.

 

해설 확인하기

코드는 두 개의 날짜 문자열(date1과 date2)을 비교하여, 첫 번째 날짜가 두 번째 날짜보다 이전인지 여부를 반환하는 JavaScript 함수입니다.

함수의 동작은 다음과 같습니다:

date1과 date2를 입력으로 받습니다.

new Date(date1)과 new Date(date2)를 사용하여 문자열을 JavaScript의 Date 객체로 변환합니다.

변환된 두 개의 날짜 객체를 비교하여 첫 번째 날짜가 두 번째 날짜보다 이전인지 확인합니다.

첫 번째 날짜가 두 번째 날짜보다 이전인 경우, 1을 반환합니다. 그렇지 않으면 0을 반환합니다.

즉, 이 함수는 첫 번째 날짜가 두 번째 날짜보다 이전인지 여부에 따라 1 또는 0을 반환합니다.

728x90
반응형