문제 설명
머쓱이는 옷가게에서 10만 원 이상 사면 5%, 30만 원 이상 사면 10%, 50만 원 이상 사면 20%를 할인받습니다. 구매할 옷의 가격이 주어질 때, 지불해야 할 금액을 계산하는 함수를 작성합니다.
제한사항
10 ≤
price
≤ 1,000,000, 소수점 이하를 버린 정수를 반환해야 합니다.
import Foundation
func solution(_ price: Int) -> Int {
if price >= 500000 {
return Int(Double(price) * 0.8)
} else if price >= 300000 {
return Int(Double(price) * 0.9)
} else if price >= 100000 {
return Int(Double(price) * 0.95)
} else {
return price
}
}
import Foundation
func solution(_ price: Int) -> Int {
switch price {
case 500000...:
return Int(Double(price) * 0.8)
case 300000..<500000:
return Int(Double(price) * 0.9)
case 100000..<300000:
return Int(Double(price) * 0.95)
default:
return price
}
}
할인율 계산 시 조건문을 통해 논리적인 흐름을 짜는 연습을 할 수 있었다. 또한, 타입지정의 중요성을 다시금 깨달았다. 가독성을 높이기 위해 불필요한 분기를 줄이는 리팩토링이 필요함을 느꼈다.
문제 설명
머쓱이는 추운 날에도 아이스 아메리카노만 마십니다. 아이스 아메리카노는 한 잔에 5,500원입니다. 머쓱이가 가지고 있는 돈으로 최대한 몇 잔의 커피를 마실 수 있는지, 그리고 남는 돈을 계산하는 함수를 작성합니다.
제한사항
0 <
money
≤ 1,000,000
import Foundation
func solution(_ money:Int) -> [Int] {
let cup = money / 5500
let remainingMoney = money % 5500
return [cup, remainingMoney]
}
단순한 나눗셈 연산을 통해 문제를 효율적으로 해결할 수 있다는 점과, 나머지 계산을 활용해 잔돈을 처리하는 기본적인 수학적 사고를 연습할 수 있었다.
문제 설명
개미 군단은 사냥감의 체력에 딱 맞는 병력을 데리고 나가야 합니다. 장군개미는 5의 공격력을, 병정개미는 3의 공격력을, 일개미는 1의 공격력을 가지고 있습니다. 사냥감의 체력
hp
가 주어질 때, 최소한의 개미 수를 사용해 체력을 정확히 줄일 수 있도록 병력 구성을 계산합니다.제한사항
hp
는 자연수, 0 ≤hp
≤ 1,000
import Foundation
func solution(_ hp:Int) -> Int {
var count = 0
var a = hp / 5
count += a
var b = (hp - count * 5) / 3
count += b
var c = hp - a * 5 - b * 3
count += c
return count
}
import Foundation
func solution(_ hp:Int) -> Int {
let generals = hp / 5
let soldiers = (hp % 5) / 3
let workers = (hp % 5) % 3
return generals + soldiers + workers
}
반복적인 나눗셈과 나머지 연산을 통해 최적의 해결책을 찾는 사고를 훈련할 수 있었다.