프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
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
'개인공부 > 알고리즘' 카테고리의 다른 글
프로그래머스 - 고양이와 개는 몇마리 있을까? (MySQL) (0) | 2023.07.29 |
---|---|
프로그래머스 - 최댓값 만들기(2) (Kotlin) (0) | 2023.07.28 |
프로그래머스 - 숨어있는 숫자의 덧셈(2) (Kotlin) (0) | 2023.07.27 |
프로그래머스 - 안전지대 (Kotlin) (0) | 2023.07.26 |
프로그래머스 - 외계어 사전 (Kotlin) (0) | 2023.07.24 |