본캠프 2주차 수요일 TIL

호씨·2024년 10월 30일
0

금일은 본 강의내용을 바탕으로 제공해준 문제풀이 및 튜터님과의 면담시간, 알고리즘 강연이 있었다.

1. 계산기 기능 구현

Lv1

  • 더하기, 빼기, 나누기, 곱하기 연산을 수행할 수 있는 Calculator 클래스를 만들기
  • 생성한 클래스를 이용하여 연산을 진행하고 출력

먼저 내가 생각한방식은 enum과 switch문을 사용해서 하나의 함수 안에 각각 덧셈, 뺼셈, 곱셈, 나눗셈의 로직을 넣은다음에 맨 아래에 각각의 값을 넣어서 계산하는 방식으로 작성을 했다. 아래에는 코드 전체를 넣어두겠다.

//: [Previous](@previous)

import Foundation

var greeting = "Hello, playground"

//: [Next](@next)

class Calculator {
    
    //연산자 구별할 타입생성
    enum Operator {
        case add            //덧셈
        case subtraction    //뺄셈
        case multiplication //곱셈
        case division       //나눗셈
    }
    
    func calculate(op: Operator, a: Int, b: Int) -> Int {
        switch op {
        case .add:              // 덧셈 case문
            return a + b        // 입력한 a와 b의 덧셈값을 리턴
        case .subtraction:      // 뺼셈 case문
            return a - b        // 입력한 a와 b의 뺼셈값을 리턴
        case .multiplication:   // 곱셈 case문
            return a * b        // 입력한 a와 b의 곱셈값을 리턴
        case .division:         // 나눗셈 case문
            // 분모에0이 입력되면 0을 리턴
            if b == 0 {
                return 0
            }
            return a / b        // 입렵한 a와 b의 나눗셈값을 리턴
        }

    }
}

// calculator 인스턴스 생성
let calculator = Calculator()

// 연산(임의의 값 10, 3 각각 부여)
let addResult = calculator.calculate(op: .add, a: 10, b: 3)
let subResult = calculator.calculate(op: .subtraction, a: 10, b: 3)
let mulResult = calculator.calculate(op: .multiplication, a: 10, b: 3)
let divResult = calculator.calculate(op: .division, a: 10, b: 3)

Lv2

  • Lv1에서 만든 Calculator 클래스에 “나머지 연산”이 가능하도록 코드를 추가하고, 연산 진행 후 출력
    • ex) 나머지 연산 예시 : 6을 3으로 나눈 나머지는 0 / 5를 3으로 나눈 나머지는 2
    • 오류가 날 수 있는 ‘예외처리’ 상황에 대해 고민해보기 + 구현하기

아래는 해당 코드의 원본이다.

//: [Previous](@previous)

import Foundation

var greeting = "Hello, playground"

//: [Next](@next)

class Calculator {
    
    //연산자 구별할 타입생성
    enum Operator {
        case add            //덧셈
        case subtraction    //뺄셈
        case multiplication //곱셈
        case division       //나눗셈
        case remain         //나머지셈
    }
    
    func calculate(op: Operator, a: Int, b: Int) -> Int {
        switch op {
        case .add:              // 덧셈 case문
            return a + b        // 입력한 a와 b의 덧셈값을 리턴
        case .subtraction:      // 뺼셈 case문
            return a - b        // 입력한 a와 b의 뺼셈값을 리턴
        case .multiplication:   // 곱셈 case문
            return a * b        // 입력한 a와 b의 곱셈값을 리턴
        case .division:         // 나눗셈 case문
            // 분모에0이 입력되면 0을 리턴
            if b == 0 {
                return 0
            }
            return a / b        // 입렵한 a와 b의 나눗셈값을 리턴
        
        
        case .remain:
            return a % b
        }

    }
}

// calculator 인스턴스 생성
let calculator = Calculator()

// 연산(임의의 값 10, 3 각각 부여)
let addResult = calculator.calculate(op: .add, a: 10, b: 3)
let subResult = calculator.calculate(op: .subtraction, a: 10, b: 3)
let mulResult = calculator.calculate(op: .multiplication, a: 10, b: 3)
let divResult = calculator.calculate(op: .division, a: 10, b: 3)
let remainResult = calculator.calculate(op: .remain, a: 10, b: 3)

아직 3,4번의 문제가 남았지만 내일중으로 다 끝낼까 생각중이며 남은 강의도 몰아서 다 봐야할것같다.

profile
이것저것 많이 해보고싶은 사람

0개의 댓글