Skip to content

Commit

Permalink
feat: step1 기능 구현
Browse files Browse the repository at this point in the history
주스 메이커 클래스 구현
재고 확인 메소드
재고가 있는지 확인하는 메소드
과일 소비하는 메소드
주스 만들기 메소드
과일 재고 추가 메소드
  • Loading branch information
stevenkim18 committed Mar 8, 2021
1 parent 4e5d115 commit e97c7ec
Show file tree
Hide file tree
Showing 2 changed files with 60 additions and 3 deletions.
53 changes: 52 additions & 1 deletion JuiceMaker/JuiceMaker/JuiceMaker.swift
Original file line number Diff line number Diff line change
Expand Up @@ -6,4 +6,55 @@

import Foundation

/// 쥬스 메이커 타입
enum Fruit: Int, CaseIterable {
case strawberry, banana, pineapple, kiwi, mango

var index: Int {
return self.rawValue
}
}

enum FruitJuice {
case strawberry, banana, kiwi, pineapple, strawberryBanana, mango, mangoKiwi
}

class JuiceMaker {
private var fruitStocks = [Int](repeating: 10, count: Fruit.allCases.count)

func checkStock(fruit: Fruit) -> Int {
return fruitStocks[fruit.index]
}
func checkStockAvailable(fruit: Fruit, stock: Int) -> Bool {
if (checkStock(fruit: fruit) < stock) {
return false
}
return true
}
func consumeFriut(fruit: Fruit, stock: Int) {
fruitStocks[fruit.index] -= stock
}
func makeFruitJuice(juice: FruitJuice) {
switch juice {
case .strawberry:
consumeFriut(fruit: .strawberry, stock: 16)
case .banana:
consumeFriut(fruit: .banana, stock: 2)
case .kiwi:
consumeFriut(fruit: .kiwi, stock: 3)
case .pineapple:
consumeFriut(fruit: .pineapple, stock: 2)
case .strawberryBanana:
consumeFriut(fruit: .strawberry, stock: 10)
consumeFriut(fruit: .banana, stock: 1)
case .mango:
consumeFriut(fruit: .mango, stock: 3)
case .mangoKiwi:
consumeFriut(fruit: .mango, stock: 2)
consumeFriut(fruit: .kiwi, stock: 1)
}
}
func addStock(fruit: Fruit) {
fruitStocks[fruit.index] += 1
}
}

10 changes: 8 additions & 2 deletions JuiceMaker/JuiceMaker/ViewController.swift
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,14 @@ class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.

let j = JuiceMaker()
print(j.fruitStocks)

j.consumeFriut(fruit: .banana, stock: 12)

print(j.fruitStocks)

}


}

0 comments on commit e97c7ec

Please sign in to comment.