스파르타 코딩 클럽 - iOS 스타터 6기/알고리즘 코드카타
8. 스파르타 코딩 클럽 - 3월 20일 코딩테스트 연습 (코드카타)
seongpil Heo
2025. 3. 20. 09:36
❓ 오늘의 문제
1. 양꼬치
- 머쓱이네 양꼬치 가게는 10인분을 먹으면 음료수 하나를 서비스로 줍니다. 양꼬치는 1인분에 12,000원, 음료수는 2,000원입니다. 정수 n과 k가 매개변수로 주어졌을 때, 양꼬치 n인분과 음료수 k개를 먹었다면 총얼마를 지불해야 하는지 return 하도록 solution 함수를 완성해 보세요.
[ 방법 1 ]
나의 정답 코드 1
import Foundation
func solution(_ n:Int, _ k:Int) -> Int {
var result = 0
if n >= 10 {
var mok = n / 10
result = (n * 12000) + (k * 2000) - (mok * 2000)
} else {
result = (n * 12000) + (k * 2000)
}
return result
}
[ 방법 2 ]
나의 정답 코드 2
import Foundation
func solution(_ n:Int, _ k:Int) -> Int {
return (n * 12000) + (k * 2000) - (n/10 * 2000)
}
✓ TIL
오늘은 양꼬치라는 문제를 풀어보았다.
2가지 방법으로 문제를 풀어봤다.
첫 번째는 if문을 사용하여 먹은 양꼬치가 10인분 이상인지 확인 후 서비스 음료수를 빼는 식으로 구현하였다.
그러나 굳이 이 방법을 사용하지 않아도 된다는 것을 알게 되었다.
두 번째 방법으로 코드를 작성하면 (n * 12000) + (k * 2000) - (n/10 * 2000) 중 (n/10 * 2000)에서
n이 10이 넘으면 몫으로 1 이상의 값이 발생하고 10이 넘지 않으면 0이기 때문에 0 * 2000 = 0으로 계산에 문제를 주지 않는다.
따라서 보기 편하고 코드가 짧은 두 번째 방법이 좀 더 효율적인 것 같다.