알고리즘

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

계양 꿀주먹 2024. 4. 5. 01:29


import java.util.*;

class Solution {
    public String solution(String polynomial) {
        StringBuilder sb = new StringBuilder();
        int var = 0;
        int con = 0;
        List<Integer> variables = new ArrayList<>();
        List<Integer> constants = new ArrayList<>();
        
        for(String s : polynomial.split(" ")) {
            if(s.contains("x")) {
                s = s.replace("x", "");
                if(s.equals("")) variables.add(1);
                else variables.add(Integer.parseInt(s));
            } else if(s.contains("+")) {
                continue;
            } else {
                constants.add(Integer.parseInt(s));
            }
        }
        
        for(int n : variables) {
            var += n;    
        }
        
        for(int n : constants) {
            con += n;
        }
        
        if(var == 1) sb.append("x");
        else if(var != 0) sb.append(Integer.toString(var) + "x");
        
        if(var != 0 && con != 0) sb.append(" + ");
        
        if(con != 0) sb.append(Integer.toString(con));
                                              
        return sb.toString();
    }
}

 

x가 1일 때 1x가 아닌 x가 되어야 하며, 변수나 상수 값이 없다면 + 가 없어야 하므로 값을 체크해주어야 합니다.