TIL 20240601 코딩테스트 (6)

2024. 6. 1. 20:17코딩테스트

 


// 0떼기
class Solution {
    fun solution(n_str: String): String = n_str.toInt().toString()
}

 

0이란 숫자가 앞에 붙어있으면 이를 떼어 내는 문제였는데,,

이걸 어떻게 풀어야 하나 망설였는데,,

생각해보니 0떼기를 문자형이 아니라 정수일 경우엔 앞에 0자리가 붙진 않으니까

자연스럽게 0를 뗄 수 있지 않을까?? 싶었기 때문에 우선적으로는 toInt을 통해서 정수로 만들고 다시 스트링화해줬다!

 

 


// 문자열 정수의 합
class Solution {
    fun solution(num_str: String): Int {
        var answer: Int = 0
        for (i in num_str){
            answer += i.toString().toInt()
        }
        return answer
    }
}

 

이것 또한 위에서 푼 방식과 비슷하다.... 다만 문자열을 정수로 바꿔주고 이에 대한 값을 구하는 거뿐,,

fun solution(num_str: String): Int = num_str.sumOf { it.digitToInt()}

 

이렇게 한 줄로 줄일 수 있다고도 한다!! 참고해서 다시 작성해보고 다른 문제 풀 때 응용해보고자 한다.

 

 


// 문자열로 변환
class Solution {
    fun solution(n: Int): String = n.toString()
}

 

정수를 문자열로 변환하는 것이기 때문에 단순히 toString으로 해주면 된다!!

 

 


// 소문자로 바꾸기
class Solution {
    fun solution(myString: String): String = myString.toLowerCase()
}

 

대문자인걸 소문자로 바꾸는 형식이기 때문에 그저 toLowerCase()를 이용하여 간단하게 풀어주었다!!

 

 


// 피자 나눠 먹기 (1)
class Solution {
    fun solution(n: Int): Int = if(n%7 != 0) n/7 +1 else n/7
}

 

피자는 7조각으로 나뉘어져 있는 상태였고 한 명이 최소 한 조각을 먹기 위해서 1판이 필요하고,,

15명이 최소 한 조각을 먹기 위해서는 최소 3판이 필요한 문제였다.. 그래서 if 절을 이용해서 우선 7조각의 나머지가 0아닌 경우를 구하고 이럴 경우에는 항상 + 1 되도록 계산해 주었고 0이라면 7의 배수이므로 7으로 나눈 값 풀어주었다...

좀 번거로운 문제였지만,, 다시 생각해보면 충분히 풀 수 있는 문제였다.. 그래두 한 번 다시 풀어봐야 할 문제라고 생각한다..

 

 


// 옷가게 할인받기
class Solution {
    fun solution(price: Int): Int =
        if (price >= 500000) {
            (price * 0.8).toInt()
        } else if (price >= 300000) {
            (price * 0.9).toInt()
        } else if (price >= 100000) {
            (price * 0.95).toInt()
        }else{
            price
        }
}

 

가격에 따라서 할인하는 범주가 달랐던 문제였다.. 원래는 작은 숫자 순으로 했었는데,, 뭔가 그럼 else if 할 때 문제가 발생해서 반대로 큰 수에서 작은 수 방향으로 문제를 바꿔주었다. 

또한 double로 풀어주었다가 int로 받환받는 식이라서 우선 소수로 계산한다음에 int화를 하는게 맞다고 판단하여 이렇게 풀어주었다... 

이 역시 추후에 다시 한 번 풀어볼 필요가 있을 것같다.. 이해는 했지만,, 한 번에 생각을 하고 푼 문제는 아니였기에,,

 

 

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

TIL 20240607 코딩 테스트(8)  (0) 2024.06.07
TIL 20240605 코딩테스트 (7)  (1) 2024.06.05
TIL 20240528 코딩테스트 (5)  (2) 2024.05.28
TIL 20240525 코딩테스트 (4)  (0) 2024.05.25
TIL 20240523 코딩테스트 (3)  (0) 2024.05.23