https://school.programmers.co.kr/learn/courses/30/lessons/120863#
문자열에 x가 들어간다면 그 문자열은 x항인 것이다. 만약, 문자열이랑 x와 같다면 계수가 1인 것이다. 또한, 문자가 isDigit이면, 상수항인 것이다.
isDigit은 String으로 판단할 수 없기 때문에 charAt을 이용하여 그 한 자리 수를 Character로 변경하고 isDigit 메소드를 사용해 주엇다.
마지막으로, numCnt가 1인 경우에는 계수를 생략시켜서 문자열로 출력시켜 주어야 한다.
class Solution {
public String solution(String polynomial) {
String[] input = polynomial.split(" ");
int xCnt = 0; //계수
int numCnt = 0; //상수항
String answer = "";
for(int i=0; i<input.length; i++){
if(input[i].contains("x")){ //x항일 경우
if(input[i].equals("x")){ //계수가 1일 경우
xCnt = xCnt + 1;
}else{ //계수가 붙은 경우 -> 계수가 두개인 경우도 생각해야함
input[i] = input[i].replace("x", "");
xCnt += Integer.parseInt(input[i]);
}
}else if(Character.isDigit(input[i].charAt(0))){
numCnt += Integer.parseInt(input[i]);
}
}
if (numCnt > 0 && xCnt > 0) {
if(xCnt == 1){
answer = "x" + " + " + numCnt;
}else{
answer = xCnt + "x" + " + " + numCnt;
}
} else if (numCnt <= 0 && xCnt > 0) {
if(xCnt == 1){
answer = "x";
}else{
answer = xCnt + "x";
}
} else if (numCnt > 0 && xCnt <= 0) {
answer = numCnt + "";
}
return answer;
}
}