티스토리 뷰
코드카타
콜라 문제
문제
문제가 좀 많이 길긴 한데 알고보면 그렇게 어려운 문제는 아니다.
정답
class Solution {
fun solution(a: Int, b: Int, n: Int): Int {
var res: Int = 0
var num: Int = n
while (num >= a) {
val gb = num / a * b
res += gb
num = gb + num % a
}
return res
}
}
while문 이용해서 받을 수 있는 총 콜라의 개수를 계산한다.
변수선언
var res: Int = 0
var num: Int = n
받을 수 있는 총 콜라의 개수를 저장할 변수 res와
상빈이가 가지고 있는 빈병의 개수를 가변형으로 가지는 변수 num을 선언해준다.
로직
while (num >= a) {
val gc = num / a * b
res += gc
num = gc + num % a
}
콜라로 바꿔먹는데 필요한 빈병의 개수가 현재 지닌 빈병의 개수보다 크거나 같을 때까지 while문을 돌린다.
gc(get cola)의 값은 얻을 수 있는 콜라의 개수에 해당하고 그 값을 res에 더한다.
현재 지닌 병의 개수를 gc에 빈 병을 콜라로 교환하고 남은 빈병의 개수를 더한 값으로 초기화 한다.
테스트 케이스 추가
문제에 테스트케이스가 이 2개 밖에 없는데
테스트케이스가 상당히 부실하다.
저 2개의 테스트케이스만 통과하도록 코드를 짜면 오답처리된다.
문제 화면의 좌하단에 위치한 테스트 케이스 추가하기를 눌러서
n이 a의 배수가 아닌 경우의 테스트케이스를 하나 추가하면
정답 처리되는 올바른 코드를 작성하는데 도움이 될 것이다.
'내일배움캠프 > Android 사전캠프' 카테고리의 다른 글
사전캠프 TIL 20일차 (2016년 - Kotlin, 앱 개발 용어정리 1) (0) | 2024.05.17 |
---|---|
사전캠프 TIL 19일차 (명예의 전당 (1) - Kotlin, MBTI 테스트 결과화면 구현) (0) | 2024.05.16 |
사전캠프 TIL 17일차 (푸드파이트 대회 - Kotlin, MBTI 테스트 질문지 화면 마무리) (0) | 2024.05.14 |
사전캠프 TIL 16일차 (가장 가까운 글자 - Kotlin, MBTI 테스트 질문지 화면 기능 구현) (0) | 2024.05.13 |
사전캠프 TIL 15일차 (두 개 뽑아서 더하기 - Kotlin) (0) | 2024.05.12 |