Front-End

프로그래머스 기초트레이닝 4일차 본문

알고리즘

프로그래머스 기초트레이닝 4일차

jeongsso 2023. 8. 10. 20:59

하 .. 화요일에도 문제를 풀었지만,

회사 일이 너무 갑자기 몰아쳐서 ... 놓쳐버렸습니다 ㅜㅜ

그리고 태풍오기전에 강아지 ...산책도 못해주니까 바람좀 쐐주고 와버렸습니다 하핫!

 

오늘 드디어 회사일이 조큼 정리되어서 회사 개발이슈 및 문제풀었던 것 블로그 정리하겠습니당.

 

 

 

그니까 ... 8/8 문제입니다 ^^

 

 

 

 

문제 20.  문자 리스트를 문자열로 변환하기


문제 설명

문자열 my_string과 정수 n이 매개변수로 주어질 때,

my_string의 앞의 n글자로 이루어진 문자열을 return 하는 solution 함수를 작성해 주세요.

 

 

입출력 예

my_string n result
"ProgrammerS123" 11 "ProgrammerS"
"He110W0r1d" 5 "He110"

 

 

입출력 예 설명

예제 1번의 my_string에서 앞의 11글자는 "ProgrammerS"이므로 이 문자열을 return 합니다.

예제 2번의 my_string에서 앞의 5글자는 "He110"이므로 이 문자열을 return 합니다.

 

저의 풀이!

function solution(my_string, n) {
    return my_string.slice(0, n);
}

console.log(solution('ProgrammerS123', 11));

 

메모

일단 slice 쓰면될것같아서 찾아보고 썼고,

그전에 저는 slice 가 배열에 적용하는 메서드인줄알고 my_string 을 전개연산자를 써서 

나눠준 후에 ㅎㅎ index를 slice 하는건갑다~! 했는데,

문자열에도 사용할 수있는 메서드였기 때문에 전개연산자는 제거했습니다!

 

 

 

 

 

 

문제 21.  부분 문자열인지 확인하기


문제 설명

부분 문자열이란 문자열에서 연속된 일부분에 해당하는 문자열을 의미합니다.

예를 들어, 문자열 "ana", "ban", "anana", "banana", "n"는 모두 문자열 "banana"의 부분 문자열이지만,

"aaa", "bnana", "wxyz"는 모두 "banana"의 부분 문자열이 아닙니다.

문자열 my_string과 target이 매개변수로 주어질 때,

target이 문자열 my_string의 부분 문자열이라면 1을,
아니라면 0을 return 하는 solution 함수를 작성해 주세요.

입출력 예

myString target result
"banana" "ana" 1
"banana" "wxyz" 0

 

입출력 예 설명

그냥 딱봐도! 이해가 가실거라 생각하겠습니다 ㅎ.

 

 

저의 풀이!

function solution(my_string, target) {
    return my_string.includes(target) ? 1 : 0;
}

console.log(solution('banana', 'nana'));

 

메모

indexOf 는 인자로 전달된 문자열이 존재한다면 그 문자열이 위치한 index를 리턴합니다. 존재하지 않는다면 -1를 리턴합니다
includes 는 해당 글자가 있는지를 확인해준다.

불리언 값을 Number로 변환해도 우리가 출력하려던 1과 0을 출력해낼 수 있다.
Number(my_string.includes(target));

이처럼 말이죠 ㅎㅎ

 

 

 

문제 22.  조건에 맞게 수열 변환하기


문제 설명

정수 배열 arr가 주어집니다.

arr의 각 원소에 대해 값이 50보다 크거나 같은 짝수라면 2로 나누고,

50보다 작은 홀수라면 2를 곱합니다.

그 결과인 정수 배열을 return 하는 solution 함수를 완성해 주세요.

 

입출력 예

arr result
[1, 2, 3, 100, 99, 98] [2, 2, 6, 50, 99, 49]

 

입출력 예 설명

1, 3은 50 미만의 홀수 이므로 2를 곱하고, 100, 98은 50 이상의 짝수이므로 2로 나눕니다.
나머지 값들은 변경 조건에 해당하지 않으므로 바꾸지 않습니다.
따라서 [2, 2, 6, 50, 99, 49]를 return 합니다.

 

저의 풀이!

function solution(arr) {
    return arr.map(a => {
        if (a >= 50 && a % 2 === 0) return a / 2;
        if (a < 50 && a % 2 === 1) return a * 2;
        return a;
    });
}

console.log(solution([1, 2, 3, 100, 99, 98]));

메모

map or forEach 메서드를 사용해서 돌리면됩니당!

 

 

 

 

 

Comments