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 |