알고리즘 CODEKATA 02 (두 수의 곱)

오리너구리·2024년 5월 10일
0

CODEKATA

목록 보기
2/57

두 수의 곱

문제 설명

정수 num1num2가 매개변수 주어집니다. num1과 num2를 곱한 값을 return 하도록 solution 함수를 완성해주세요.


제한 사항

  • 0 ≤ num1 ≤ 100
  • 0 ≤ num2 ≤ 100

내 풀이 1

class Solution {
    fun solution(num1: Int, num2: Int): Int {
        var answer: Int = 0
        
        if (num1 >=0 && num1<=100 && num2>=0 && num2 <=100)
            answer= num1 * num2
       
        return answer
        
    }
}

if 문 안에 비교 연산자랑 논리 연산자를 사용해서 조건을 넣었다

내 풀이 2

class Solution {
    fun solution(num1: Int, num2: Int): Int {
        var answer: Int = 0
        
        val min = 0
        val max = 100
        
        if ((num1 in min..max) && (num2 in min..max))
        
            answer= num1 * num2
        
        return answer       
    
    }
}

조건 min 과 max 를 변수로 지정해주었다.

다른 사람 풀이

class Solution {
    fun solution(num1: Int, num2: Int): Int {
        var answer: Int = 0
        if (checkInterval(num1) && checkInterval(num2)) {
            answer = num1 * num2
        }
        return answer
    }

    fun checkInterval(num: Int): Boolean {
        return num >= 0 && num <= 100
    }
}

조건을 검사하는 함수 checkInterval을 만들어서 Boolean값을 리턴하게 했다.

class Solution {
    fun isWithinScope(num: Int): Boolean = num in 0..100

    fun solution(num1: Int, num2: Int): Int {
        if(!isWithinScope(num1) || !isWithinScope(num2)) {
            throw IllegalArgumentException("주어진 값은 0 ~ 100 사이어야 합니다.")
        }

        return num1 * num2
    }
}

위와 비슷하지만, IllegalArgumentException까지 활용해준 코드

class Solution {
    fun solution(num1: Int, num2: Int): Int {
        var answer: Int = 0
        var min: Int = 0
        var max: Int = 100
        var chk: Boolean = (min <= num1 && num1 <= max && min <= num2 && num2 <= max)
        if(chk){
            answer = num1 * num2
        }
        return answer
    }
}

조건 검사를 함수 대신 Boolean 변수로 처리한 코드

profile
오리너구리입니다

0개의 댓글