본문으로 바로가기
728x90
반응형

문제

반응형

풀이

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
class Solution {
    public String solution(String polynomial) {
        String answer="";
        String[] split=polynomial.split("\\s\\+\\s");       //매개변수로 들어온 다항식을 전부 쪼깨서 배열에 넣음
        int con=0;                                          //상수를 넣을 변수 con
        int unk=0;                                          //미지수x 의 계수를 더할 unk
        for(int i=0; i<split.length; i++) {
            if(split[i].matches("^[0-9]+$")) {              //만약 배열의 i번째 값이 정수면
                con+=Integer.parseInt(split[i]);            //con 에 더함
            } else if(split[i].equals("x")) {               //만약 배열의 i번째 값이 x 이면
                unk+=1;                                     //unk에 1을 더함
            } else if(split[i].contains("x")) {             //만약 배열의 i번째 값이 x를 포함하면
                unk+=Integer.parseInt(split[i].substring(0split[i].length()-1));  //x의 계수만 unk에 더함
            }
        }
        
        if(unk!=0 && con==0) {          //만약 상수가 0 이고
            if(unk==1) answer="x";      //미지수 x의 계수가 1이면 그냥 x 만 리턴
            else answer=unk + "x";      //미지수 x의 계수가 1이 아니면 계수를 붙여서 리턴
        }
        if(unk==0 && con!=0) {          //만약 미지수는 없고 상수만 있으면
            answer=String.valueOf(con); //상수만 리턴
        }
        if(unk!=0 && con!=0) {                    //만약 상수와 미지수가 있고
            if(unk==1) answer="x" + " + " + con;  //미지수 x의 계수가 1이면 x+상수 를 리턴
            else answer=unk + "x" + " + " + con;  //미지수 x의 계수가 1이 아니면 계수x+상수 를 리턴
        }
        return answer;
    }
}
cs

 

728x90
반응형