티스토리 뷰

코드카타

 

콜라 문제

 

문제

 

문제가 좀 많이 길긴 한데 알고보면 그렇게 어려운 문제는 아니다.

 

 

정답

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개의 테스트케이스만 통과하도록 코드를 짜면 오답처리된다.

 

 

문제 화면의 좌하단에 위치한 테스트 케이스 추가하기를 눌러서

 

na의 배수가 아닌 경우의 테스트케이스를 하나 추가하면

정답 처리되는 올바른 코드를 작성하는데 도움이 될 것이다.

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/09   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
글 보관함