고민중인 문제1(해결)

Dongs·2023년 2월 14일
0

기존코드

function solution(p) {

    let num = [];
    let x = p.split('+').map((e) => {
        if (e.includes('x')) {
            return e.trim().charAt(0) == 'x' ? 1 : Number(e.split('x')[0].trim());
        } else {
            num.push(Number(e));
            return 0;
        }
    });
    
    let xnum = 0;
    let nnum = 0;
    
    x.forEach(e => xnum+=e);
    num.forEach(e => nnum+=e);
    
    
    return nnum == 0 ? `${xnum}x` : `${xnum}x + ${nnum}`;
 }

프로그래머스 다항식 더하기

https://school.programmers.co.kr/learn/courses/30/lessons/120863

  • 기존코드에서 해결이 되지 않았던 부분은 바로 주어진 인자가
    ["1x + 0"], ["12 + 5"] 와 같은 경우를 고려를 해주지 않았다. 이 부분에 대해 따로 조건을 걸어서 결과를 리턴해주었다.
function solution(p) {

    let num = [];
    let x = p.split('+').map((e) => {
        if (e.includes('x')) {
            return e.trim().charAt(0) == 'x' ? 1 : Number(e.split('x')[0].trim());
        } else {
            num.push(Number(e));
            return 0;
        }
    });
    
    let xnum = 0;
    let nnum = 0;
    
    x.forEach(e => xnum+=e);
    num.forEach(e => nnum+=e);
    
    if(xnum==1){
        return nnum == 0 ? 'x' : `x + ${nnum}`;
    } else if(xnum == 0){
        return nnum.toString();
    } else {
        return nnum == 0 ? `${xnum}x` : `${xnum}x + ${nnum}`;
    }  
}

해결 완료.

profile
자대고 css 하는 프론트엔드 개발자

0개의 댓글