본문 바로가기
코딩테스트

[프로그래머스] 주사위 게임 1

by liz_devel 2025. 2. 13.

🗒 문제

 


📝 나의 문제풀이

import kotlin.math.*

class Solution {
    fun solution(a: Int, b: Int): Int {
      return if(a % 2 != 0 && b % 2 != 0) {(a * a) + (b * b)
            }else if(a % 2 != 0 || b % 2 != 0){
                2 * ( a +b )
            }else{
                abs(a - b)
        }
    }
}

 


📝 다른 사람의 문제 풀이

다른 사람의 문제 풀이는 좋아요 수가 높거나 많은 사람들이 푼 방법 기준으로 첨부하였습니다.

import kotlin.math.*

class Solution {
    fun solution(a: Int, b: Int): Int {
        var answer: Int = 0
        return when {
            a % 2 != 0 && b % 2 != 0 -> a*a+b*b
            a % 2 != 0 || b % 2 != 0 -> 2*(a+b)
            else -> abs(a-b)
        }
    }
}

🖊 문제 풀이 시 알면 좋을 것

 

abs(x: Int): Int

  • 정수 또는 실수의 절대값을 반환
import kotlin.math.abs

println(abs(-10)) // 10
println(abs(5))   // 5

 

 

when 표현식

  • 여러 조건을 깔끔하게 처리하는 if-else 대체문
val result = when {
    a % 2 != 0 && b % 2 != 0 -> a * a + b * b
    a % 2 != 0 || b % 2 != 0 -> 2 * (a + b)
    else -> abs(a - b)
}

 

mod 연산 (%)

  • 나머지를 구하는 연산자
  • 홀수/짝수 판별에 유용함
val num = 5
println(num % 2 != 0) // true (홀수)
println(num % 2 == 0) // false (짝수 아님)

 

 

a * a + b * b (제곱 연산)

  • 간단한 곱셈을 통한 제곱 연산
val a = 3
println(a * a) // 9

 

대체 가능 방법: a.toDouble().pow(2).toInt()

import kotlin.math.pow

val a = 3
println(a.toDouble().pow(2).toInt()) // 9

 

 

pow()

  • pow() 함수는 거듭제곱(제곱, 세제곱 등)을 계산하는 함수.
  • kotlin.math.pow()는 Double 타입의 값만 사용 가능함.
  • 반환값: Double (항상 Double을 반환)
  • 사용하려면 import kotlin.math.pow 필요!
import kotlin.math.pow

val base = 2.0
val exponent = 3.0

println(base.pow(exponent)) // 8.0 (2^3)
반응형