본문 바로가기
프로그래머스/[프로그래머스 - JAVA] Lv.0

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

by 코딩하는 흰둥이 2023. 3. 18.
반응형


 

  • 내 풀이
class Solution {
    public String solution(String polynomial) {
        String answer = "";

        // 매개변수의 공백 + 공백 을 기준으로 배열에 담는다
        String[] check = polynomial.split(" \\+ ");
        // x의 값을 더하기 위한 변수
        int x = 0;

        // 상수항을 더하기 위한 변수
        int sum = 0;

        for (int i = 0; i < check.length; i++) {
            // 매개변수의 값 중 x가 포함된 경우
            if (check[i].contains("x")){
                // x만 있는 경우는 length가 1보다 큼
                if (check[i].length() > 1){
                    // x부분을 제외한 숫자만 x에 넣어준다
                    x += Integer.parseInt(check[i].substring(0 , check[i].length()-1));
                }else {
                    // x만 있는 경우는 +1
                    x += 1;
                }
            }else {
                // 매개변수에 x를 포함하지 않는 경우는 상수항으로서 따로 담는다
                sum += Integer.parseInt(check[i]);
            }
        }
        
        if (x != 0 && sum != 0){
            if (x == 1){
                answer = "x + "+sum;
            }else{
                answer = String.valueOf(x) + "x + " +sum;
            }
        } else if (x != 0 && sum == 0) {
            // x가 1인 경우 1x가 아닌 x가 되어야 한다.
            if(x == 1){
                answer = "x";
            }else {
                answer = String.valueOf(x)+"x";
            }
        } else if(x == 0 && sum != 0){
            answer = String.valueOf(sum);
        }else if(x == 0 && sum == 0){
            answer = "0";
        }

        return answer;
    }
}

 

 

  • 다른 사람 풀이
class Solution {
    public String solution(String polynomial) {
        int xCount = 0;
        int num = 0;

        for (String s : polynomial.split(" ")) {
            if (s.contains("x")) {
                xCount += s.equals("x") ? 1 : Integer.parseInt(s.replaceAll("x", ""));
            } else if (!s.equals("+")) {
                num += Integer.parseInt(s);
            }
        }
        return (xCount != 0 ? xCount > 1 ? xCount + "x" : "x" : "") + (num != 0 ? (xCount != 0 ? " + " : "") + num : xCount == 0 ? "0" : "");
    }
}

댓글