본문 바로가기

코딩 테스트

[javascript] 프로그래머스 코딩 기초 트레이닝 Day3 정리

728x90

📝 Day 3. 연산

새로 알게 된 내용이나 리펙토링한 내용 정리하기! 

🚩 문자열 섞기

Spread Operator

반복 가능한 객체를 전개(spread)해서 사용할 수 있다.

const elements = ['Fire', 'Air', 'Water'];

console.log(...elements); // Fire Air Water

function solution(str1, str2) {
    var answer = '';
    
    const str1Splitted = str1.split("");
    const str2Splitted = str2.split("");
    
    for (var x = 0; x < str1.length; x++){
        answer += str1Splitted[x];
        answer += str2Splitted[x];
    }
    return answer;
}

 

참고할 다른 사람 코드

function solution(str1, str2) {
  return [...str1].map((x, idx)=> x+str2[idx]).join("");
}

 

🚩 문자열 붙여서 출력하기

join()

배열의 모든 요소를 쉼표나 지정된 구분 문자열로 구분하여 새 문자열을 만들어 반환한다.

const elements = ['Fire', 'Air', 'Water'];

console.log(elements.join());
// Expected output: "Fire,Air,Water"

console.log(elements.join(''));
// Expected output: "FireAirWater"

console.log(elements.join('-'));
// Expected output: "Fire-Air-Water"

function solution(arr) {
    var answer = '';
    arr.forEach((element) => answer += element);
    return answer;
}

 

참고할 다른 사람 코드

function solution(arr) {
    return arr.join("")
}

 

🚩 문자열 곱하기

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

🚩 더 크게 합치기

Math.max()

입력받은 숫자 중 가장 큰 숫자를 반환한다.

console.log(Math.max(1, 3, 2)); // 3

function solution(a, b) {
    var num1 = Number(a.toString() + b.toString());
    var num2 = Number(b.toString() + a.toString());
    return num1 >= num2 ? num1 : num2;
}

 

참고할 다른 사람 코드

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

 

🚩 문자열 겹쳐쓰기

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

🤔 느낀 점

문제를 푼 다음에 다른 사람의 코드를 참고해보니 다양한 내장 함수를 써서 한 줄로 쓴 코드를 많이 보게 되었다... 코드가 너무 긴 것보다 더 간편해 보이고 배울 함수도 많아서 앞으로 다른 사람의 코드도 열심히 살펴보기로 했다. 그런데 '더 크게 합치기' 문제의 경우에는 다른 사람의 코드를 참고해보니 코드를 한 줄로 줄일 수 있어서 좋다고 생각했는데 코드의 가독성을 고려하면 변수를 만들어서 좀 더 설명적으로 코드를 적는 게 나은가..? 고민이 들었다.

📚 참고

반응형