TIL 20240607 코딩 테스트(8)

2024. 6. 7. 01:00코딩테스트

오늘도 코딩테스트 푼 것을 정리하고자 한당

휴 꾸준히 하는게 쉬운게 아니구먼,,

그래도 노력하면 좋은 결과가 생기겠지 ?

 


// 주사위 게임 1
class Solution {
    fun solution(a: Int, b: Int): Int {
        var answer: Int = 0
        if(a%2 == 1 && b%2 == 1){
            answer = a * a + b * b
        } else if(a % 2 == 1 || b % 2 == 1){
            answer = 2 * (a + b)
        } else answer = Math.abs(a - b)
        return answer
    }
}

 

a와 b가 둘 다 홀수일 경우에는 a2 + b2 , a나 b 둘중의 하나만 홀수일 경우에는 2 × (a + b) 을, 둘 다 홀 수가 아니라면  

|a - b|을 구하는 문제였다...

|a - b|는 절댓값을 구하라는 것인데,,, 이런 함수가 있는지 처음 알았다.

math.abs으로 절댓값을 구할 수 있다고 한다! 이때 math는 수학적인 함수와 상수를 제공하는 기본 모듈이라고 한다 ㅠ

 

 

 

 

https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.math/

 

kotlin.math - Kotlin Programming Language

 

kotlinlang.org

 

 


// n의 배수 고르기
class Solution {
    fun solution(n: Int, numlist: IntArray): IntArray {
        var answer: IntArray = intArrayOf()
        for(i in numlist) if (i % n == 0) answer += i
        return answer
    }
}

 

n의 배수이면 나머지가 0일테니 % 연산자를 이용해서 해당된 값만 answer 값에 넣어주는 식으로 하였다...

그래서 n의 배수만 담기게 된다,,, ㅎㅎ

그동안 풀었던 문제와 별 다르지 않아서 수월히 풀 수 있었다.

 

 


// A 강조하기
class Solution {
    fun solution(myString: String): String = myString.toLowerCase().replace("a","A")
}

 

replace 을 사용하여 a를 A로 바뀌어 강조할 수 있도록 변환시켜주었다.

fun solution(myString: String): String = myString.lowercase().replace("a","A")

 

여기선 toLowerCase 대신 lowercase로 풀어도 무방했다...

 

 


// 9로 나눈 나머지
class Solution {
    fun solution(number: String): Int = number.sumOf { it.toString().toInt() } % 9
}

 

말 그대로 9로 나눴을 때의 나머지의 값을 구하는 것이다.. 

그래서 sumof 를 사용하여  sum 합계 계산하였다... int으로 반환해주는 것으로 toInt를 사용해주었고! 9의 나머지 값을 구하는 것으로 끝 부분에 % 9를 추가로 붙여주었다...

헉 ,, 이건 생각보다 어려웠더,,

다시 풀어봐야겠당 ㅠㅠ 


// 두수의 합
class Solution {
    fun solution(a: String, b: String): String {
        val aa = a.toBigInteger()
        val bb = b.toBigInteger()
        val sum = aa + bb

        return sum.toString()
    }
}

 

그냥 보통의 두 수의 합이었으면 int로 해도 무방하지만,,

 

아래 예시를 주고 
18446744073709551615, 287346502836570928366

 

두 수의 합이 되도록 하게했으므로 toBigInteger를 사용해줘서 했다!

 

 


// 배열 만들기
class Solution {
    fun solution(n: Int, k: Int) = (k..n step k).toList()
}

 

 

 

k부터 시작해서 n까지의 값을 k 만큼 증가해서 리스트화 하게 하여 해당 값을 구해주었다. 

위에 있는 n의 배수와 그다시 큰 차이는 없는 문제로,, 어렵진 않았다 ㅎㅎ

하지만 여기서 살짝 어려워지면 고민이 더 필요해질 테니,, 꼭 꼭 다시 여러 번 풀어봐야겠당

 

 

'코딩테스트' 카테고리의 다른 글

TIL 20240613 코딩 테스트(10)  (0) 2024.06.13
TIL 20240609 코딩 테스트(9)  (0) 2024.06.09
TIL 20240605 코딩테스트 (7)  (1) 2024.06.05
TIL 20240601 코딩테스트 (6)  (0) 2024.06.01
TIL 20240528 코딩테스트 (5)  (2) 2024.05.28