풀이
class Solution {
public String solution(String polynomial) {
String answer = "0";//polynomial이 빈문자라면 0반환(1차항, 상수항==0)
String[] arr=polynomial.split(" \\+ ");
int tmp=0;
int con=0;
for(int i=0; i<arr.length; i++){
if(arr[i].contains("x")){//"x"를 포함하고 있다면
if(arr[i].charAt(0)=='x'){//해당 문자의 0번째 글자가 x이거나
if(arr[i].length()==1){//1글자라면
tmp+=1;//1차항 1증가
}
}else{
int idx=arr[i].indexOf('x');//1차항 계수가 2자리 이상일 경우
tmp+=Integer.parseInt(arr[i].substring(0, idx));//계수가 1자리 일때는 idx대신 2
}
}else{
con+=Integer.parseInt(arr[i]);//x가 없다면 상수만 출력
}
}
if(tmp==0){//1차항 0인 경우
answer=con+"";
}else if(con==0){
if(tmp==1){//상수0이면서 1차 계수가 1인경우
answer="x";
}else{//상수 0이면서 1차계수가 1이 아닌경우
answer=tmp+"x";
}
}else if (tmp==1 && con!=0) {
answer = "x + "+con;
}else{
answer=tmp+"x + "+con;
}
return answer;
}
}
풀이방법
1) polynomial을 "+"를 기준으로 split하여 배열로 만들고
2) 각 배열 인덱스에서 'x'를 포함한 경우
3) 'x'를 포함하면서 'x'만 있는 경우 1차항 계수 증가
4) 1차항 계수가 2자리 이상일 경우
5) 출력할때 상수 계수, 1차항 계수가 0 인경우
6) 1차항 계수가 1인 경우
-실행되는 것을 봤을때 4)항목에 해당하는 경우는 없었던거 같다.(없어도 실행 잘됨)
-출력할 때 1차항의 계수가 1인경우를 주어진 테스트케이스에서 알아낼 수 없었다.(한참을 애먹었다)