[프로그래머스] 다항식 더하기(Java)

수경·2022년 12월 22일
0

problem solving

목록 보기
90/174

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

풀이

  1. 계수와 상수를 따로 저장
  2. 문자열을 space 기준으로 배열로 만듦
  3. 배열을 순회하면서, 해당 문자열에 x 가 있으면 계수이므로, x 전까지의 문자열을 int 값으로 바꿔줌
  4. 그렇지 않고, 해당 문자열이 + 가 아니라면 상수이므로, 해당 문자열을 int 값으로 바꾼 후 저장
  5. 계수가 있는 경우와 없는 경우, 상수가 있는 경우와 없는 경우, 계수가 1인 경우를 고려해서 알맞은 결과값을 리턴

코드

public class PolynomialAddition {
	public String solution(String polynomial) {
		int coef = 0;   // 계수
		int cons = 0;   // 상수
		for (String p : polynomial.split(" ")) {
			if (p.contains("x")) coef += p.equals("x") ? 1 : Integer.parseInt(p.substring(0, p.length() - 1));
			else if (!p.equals("+")) cons += Integer.parseInt(p);
		}
		String coefStr = coef > 0 ? coef == 1 ? "x" : coef + "x" : "";
		String consStr = cons > 0 ? String.valueOf(cons) : "";
		String result = "";
		if (coef > 0) {
			if (cons > 0) result += coefStr + " + " + consStr;
			else result += coefStr;
		}
		else if (cons > 0) result += consStr;
		return result;
	}

	public static void main(String[] args) {
		PolynomialAddition polynomialAddition = new PolynomialAddition();
		System.out.println(polynomialAddition.solution("3x + 7 + x"));  // 4x + 7
		System.out.println(polynomialAddition.solution("x + x + x"));  // 3x
	}
}
profile
어쩌다보니 tmi뿐인 블로그😎

0개의 댓글