관리 메뉴

나만을 위한 블로그

[Algorithm] 프로그래머스 - 문자열 계산하기 (Kotlin) 본문

알고리즘 문제 풀이/프로그래머스

[Algorithm] 프로그래머스 - 문자열 계산하기 (Kotlin)

참깨빵위에참깨빵_ 2023. 1. 9. 00:12
728x90
반응형
my_string은 "3 + 5"처럼 문자열로 된 수식이다. 문자열이 매개변수로 주어질 때 수식을 계산한 값을 리턴하는 solution()을 완성하라

 

 

이 문제도 풀지 못했다. 인터넷에서 찾은 풀이는 아래와 같다. 코드는 풀이를 코틀린으로 바꾼 것이다.

 

https://yongku.tistory.com/entry/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4-%EB%AC%B8%EC%9E%90%EC%97%B4-%EA%B3%84%EC%82%B0%ED%95%98%EA%B8%B0-%EC%9E%90%EB%B0%94JAVA

 

[프로그래머스] 문자열 계산하기 자바(JAVA)

츄르사려고 코딩하는 코집사입니다. 1. [프로그래머스] 문자열 계산하기 자바(JAVA) 1) 문제 제목 : 문자열 계산하기 2) 문제 출처 https://school.programmers.co.kr/learn/courses/30/lessons/120902 프로그래머스 코

yongku.tistory.com

class Solution {
    fun solution(my_string: String): Int {
        val stringArr = my_string.split(" ".toRegex()).toTypedArray()
        var answer = stringArr[0].toInt()
        var i = 1
        while (i < stringArr.size) {
            if (stringArr[i] == "+") {
                answer += stringArr[i + 1].toInt()
            } else {
                answer -= stringArr[i + 1].toInt()
            }
            i += 2
        }
        return answer
    }
}

 

이것을 간결하게 하면 아래처럼 된다.

 

class Solution {
    fun solution(myString: String) = myString.replace("- ".toRegex(), "-")
        .replace("[+] ".toRegex(), "")
        .trim()
        .split(" ".toRegex())
        .sumOf { it.toInt() }
}

 

반응형
Comments