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

Sdoubleu·2023년 5월 10일
0

프로그래머스

목록 보기
28/34
post-thumbnail

문제


내가 쓴 풀이

class Solution {
    fun solution(polynomial: String): String {
        var poly = " " + polynomial
        var varcnt = 0
        var numcnt = 0
        var answer = ""
        for(i in polynomial.replace("+"," ").split(" ").filter { it.isNotEmpty() }) {
            if("x" in i){
              if(i.length == 1) varcnt += 1 else varcnt += i.substringBefore("x").toInt()
            } else numcnt += i.toInt()
        }
        
            if(numcnt != 0 && varcnt == 0) answer = "$numcnt"
            if(numcnt == 0 && varcnt != 0){
            if(varcnt == 1) answer = "x" else answer = "${varcnt}x" 
            }
            if(numcnt != 0 && varcnt != 0) {
            if(varcnt == 1) answer = "x + ${numcnt}" else answer = "${varcnt}x + ${numcnt}"
            }
        
        return answer
    }
}

String 형식으로 된 다항식을 + 연산자와 공백을 제거한 상태로 list에 집어넣고
원소마다 x가 안에 있는지 체크 후 사이즈가 1개라면
계수가 1인 x가 존재하므로 varcnt 에 1만 더해준다

x가 안에 없다면 그냥 numcnt로 더해준다

정답처리는 경우를 5가지로 나눠서 answer 변수에 대입해준다
상수만 있는경우, x만 있는 경우, 계수가 1인 x와 상수, else


다른 사람 풀이

class Solution {
    fun solution(polynomial: String): String {
        var xCount = 0
        var num = 0

        for (s in polynomial.split(" ".toRegex())) {
            if (s.contains("x")) {
                xCount += if (s == "x") 1 else s.replace("x".toRegex(), "").toInt()
            } else if (s != "+") {
                num += s.toInt()
            }
        }
        return (if (xCount != 0) if (xCount > 1) "${xCount}x" else "x" else "") + if (num != 0) (if (xCount != 0) " + " else "") + num else if (xCount == 0) "0" else ""
    }
}

📌참고 자료

isEmpty / isBlank

profile
개발자희망자

0개의 댓글