반응형
문제 설명
출처: https://school.programmers.co.kr/learn/courses/30/lessons/120863
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
자세한 문제 설명은 위 링크를 통해 확인해주세요.
나의 풀이
function solution(polynomial) {
// 모든 식은 더하기이기 때문에 " + "를 기준으로 문자열을 배열로 만들어줍니다.
const arr = polynomial.split(" + ");
let xNum = 0;
let num = 0;
// 분리해둔 배열을 forEach() 메서드를 이용해 하나씩 확인한다.
arr.forEach((n) => {
// includes() 메서드를 이용해 x가 포함되어 있는지 확인한다.
if (n.includes("x")) {
// x가 포함되어있다면 replace() 메서드를 이용해 x를 제거해주고
// 만약 x를 제거하였는데 공백일 경우 "1"을 넣어준다.
const strVal = n.replace("x", "") || "1";
// 구한 값을 정수로 바꾸어 더해준다.
xNum += parseInt(strVal, 10);
} else {
// x가 포함되지 않았다면 숫자이므로 정수형으로 바꾸어 더해준다.
num += parseInt(n);
}
});
let answer = [];
// "계수 1은 생략합니다." 제한사항을 참고하여
// 구해둔 xNum이 1을 경우 공백으로 아니면 그대로 입력하고 뒤에 x를 붙여준다.
if (xNum) answer.push(`${xNum === 1 ? "" : xNum}x`);
if (num) answer.push(num);
// 배열을 join() 메서드를 이용해 +를 넣어 문자열로 만들고 반환한다.
return answer.join(" + ");
}
console.log(solution("3x + 7 + x")); // "4x + 7"
console.log(solution("x + x + x")); // "3x"
forEach()
Array 인스턴스의 forEach() 메서드는 각 배열 요소에 대해 제공된 함수를 한 번씩 실행합니다.
const array1 = ['a', 'b', 'c'];
array1.forEach((element) => console.log(element));
// Expected output: "a"
// Expected output: "b"
// Expected output: "c"
forEach에 대한 설명은 아래 링크를 참고해주세요.
반응형
'Javascript > 코딩테스트-연습' 카테고리의 다른 글
[JavaScript] 캐릭터의 좌표 - 프로그래머스 (26) | 2024.04.08 |
---|---|
[JavaScript] 등수 매기기 - 프로그래머스 (31) | 2024.04.04 |
[JavaScript] 이진수 더하기 - 프로그래머스 (28) | 2024.04.02 |
[JavaScript] OX퀴즈 - 프로그래머스 (25) | 2024.04.02 |
[JavaScript] 한 번만 등장한 문자 - 프로그래머스 (29) | 2024.04.02 |