반응형
Level 1 연습문제 ○
콜라문제
문제 설명
콜라를 받기 위해 마트에 주어야 하는 병 수 a, 빈 병 a개를 가져다 주면 마트가 주는 콜라 병 수 b, 상빈이가 가지고 있는 빈 병의 개수 n이 매개변수로 주어집니다. 상빈이가 받을 수 있는 콜라의 병 수를 return 하도록 solution 함수를 작성해주세요.
제한 사항
1 ≤ b < a ≤ n ≤ 1,000,000
입출력 예시
print(solution(2,1,20)) //19
print(solution(3,1,20)) //9
print(solution(5,2,20)) //12
내 답안
func solution(_ a:Int, _ b:Int, _ n:Int) -> Int {
var result = 0
var n = n
while n >= a {
result += (n/a)*b
n = (n/a)*b + n%a
}
return result
}
쓸데없이 37분 걸림 ㅡㅡ
이해하는 데 크게 어렵진 않았지만 마트에서 주는 콜라 병 수 b병 처리하는 게 좀 헷갈려서 시간을 좀 잡아먹었다.
멋진 답안
func solution(_ a:Int, _ b:Int, _ n:Int) -> Int {
return (n > b ? n - b : 0) / (a - b) * b
}
규칙을 찾으셨나보다. 이런 생각은 어떻게 하는걸까.. 😮
728x90
반응형
'Algorithm > Programmers' 카테고리의 다른 글
[Swift 알고리즘] Programmers 옹알이 (0) | 2022.10.28 |
---|---|
[Swift 알고리즘] Programmers 숫자 짝꿍 (0) | 2022.10.27 |
[Swift 알고리즘] Programmers 삼총사 (0) | 2022.10.25 |
[Swift 알고리즘] Programmers 기능개발 (0) | 2022.04.24 |
[Swift 알고리즘] 최소직사각형 (0) | 2022.03.04 |