알고리즘 CODEKATA 05 (숫자 비교하기)

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

CODEKATA

목록 보기
5/57

문제 설명

정수 num1과 num2가 매개변수로 주어집니다. 두 수가 같으면 1 다르면 -1을 retrun하도록 solution 함수를 완성해주세요.


제한 사항

  • 0 ≤ num1 ≤ 10,000
  • 0 ≤ num2 ≤ 10,000

내 풀이

class Solution {
    fun solution(num1: Int, num2: Int): Int {
        
        var answer: Int = 0
        var condition = num1 in 0..10000 && num2 in 0..10000
        
        if (condition){if (num1== num2){
           answer = 1
        }else{
            answer = -1
        }
    }      
                      
        return answer
    }
}

제한 사항을 condition 변수에 넣고,

if 문에서 condition을 만족하면 num1, num2 가 같은지 확인하도록 했다.


다른 사람 풀이

class Solution {
    fun solution(num1: Int, num2: Int): Int = when(num1==num2){
        true -> 1
        false -> -1
    }
}

when 문을 사용해서 푸신 분도 계셨음.


class Solution {
    var min = 0
    var max =10000
    var answer = 0

    fun solution(num1: Int, num2: Int): Int {
         if(check(num1)||check(num2)) {

             answer = equir(num1,num2)             
         }else {
             return -1
         }

        return answer
    }
    
    fun equir(num1:Int, num2:Int) :Int{
        if(num1 == num2){
            return 1
        }
        else 
        return -1

    }

    fun check(num : Int):Boolean{
        if(min<=num||num<=max){
            return true 
        }else

        return false
    }
} 

이렇게 숫자 범위를 검사하는 check 함수, num1, num2 가 같은지 비교하는 equir 함수, 최종 답을 내는 solution 함수를 따로 하신 분도 계셨음.

class Solution {
    fun solution(num1: Int, num2: Int): Int {
        valid(num1)
        valid(num2)
        return if(num1 == num2) 1 else -1
    }

    fun valid(num: Int) {
        if (num !in 0..10000) throw IllegalArgumentException("0 초과 100 이하의 정수로 입력해주세요.")
    }
}

경고문을 띄운 분도 게셨당

여담

문제를 풀면서 계속 오류가 나서 틀린 거 없는 것 같은데 왜 안되지!? 했는데 알고보니까

in 0 .. 10000

이 부분에서 점을 3개찍어서 그런거였다

profile
오리너구리입니다

0개의 댓글