개인공부/알고리즘

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

KEEMSY 2023. 7. 27. 22:38

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

이 문제, 가볍게 생각했다가 생각보다 생각해야할 것이 조금 있었다. 내가 생각한 문제 풀이의 핵심은 x계수 와 숫자를 어떻게 합산할 것인가 이다.

  • x의 계수는 두자리 이상이 될 수 있음을 주의해야한다.(이것 때문에 시간을 한참 사용했다..)
  • 반환하는 문자열의 조건에 주의한다.(계수가 1이거나, 0 인 경우 어떻게 처리할 것인가)

나같은 경우, x의 계수가 두자리 이상이 올 수 있음을 미처 생각하지 못해 다른 풀이를 참고했다. 그리고 반환하는 문자열의 경우, 계수가 0일 경우, 1일경우, 숫자가 0일경우를 잘 다뤄야 한다.

 

자꾸만 기본적인 조건을 다루는 문제에 대해 실수를 하는게 부끄럽다.. 아무리 난이도가 낮은 문제일지라도, 좀 더 진지하게 문제를 풀이해야겠다.

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

        val terms = polynomial.split(" + ")

        terms.forEach { term ->
            if (term.contains("x")) {
                xCount += if (term == "x") 1 else term.replace("x","").toString().toInt()
            } else {
                num += term.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 ""
        
    }
}

 

참고블로그

 

[Algorithm] 프로그래머스 - 다항식 더하기 (Kotlin)

다항식을 계산할 때는 동류항끼리 계산해 정리한다. 덧셈으로 이뤄진 다항식 polynomial이 매개변수로 주어질 때, 동류항끼리 더한 결과값을 문자열로 리턴하는 solution()을 완성하라. 같은 식이면

onlyfor-me-blog.tistory.com

 

728x90