[JAVA] 프로그래머스 : 다항식 더하기

조예빈·2024년 9월 21일
0

Coding Test

목록 보기
142/146
post-custom-banner

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;
    }
}

profile
컴퓨터가 이해하는 코드는 바보도 작성할 수 있다. 사람이 이해하도록 작성하는 프로그래머가 진정한 실력자다. -마틴 파울러
post-custom-banner

0개의 댓글