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

JJJ·2023년 6월 2일
0
post-custom-banner


풀이

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인경우를 주어진 테스트케이스에서 알아낼 수 없었다.(한참을 애먹었다)

profile
Think Talk Act
post-custom-banner

0개의 댓글