[231130] Today I Learned

YoungHyun Kim·2023년 11월 30일
2

TIL ✍️

목록 보기
8/68

[프로그래머스] 둘만의 암호

어제 꼭 딕셔너리를 문제 풀이에 활용해보겠다고 생각했는데, 오늘 그럴 수 있는 문제가 딱 나왔다. 사실 무조건(?) 딕셔너리 자료형을 사용해서 풀어야 하는 문제는 아닐 것이다. 그래도, 풀어냈으면 그거도 정답이니까... 대만족한다. 시간이 조금 오래 걸리기는 했어도, 종이에 먼저 로직을 대충 구체화한 다음 눈으로 보면서 코딩을 시작하니 일 전보다는 훨씬 문제 해결이 수월함을 느꼈다.


[내배캠] swift 기초 문법

원래라면 어제부터 개인 과제인 계산기 작성을 시작했어야 하지만, 너무 기초적인 문법에만 몰두하고 알고리즘 풀이에 정신을 빼앗겨 오늘 시작하게 되었다. 이게 오늘 작성한 계산기 코드이다.

import Foundation

class Calculator {
    func calculate(_ inputOperator: String, _ firstNumber: Double, _ secondNumber: Double) -> Double {
    
        if inputOperator == "+" {
            return firstNumber + secondNumber
        } else if inputOperator == "-" {
            return firstNumber - secondNumber
        } else if inputOperator == "*" {
            return firstNumber * secondNumber
        } else if inputOperator == "/" {
            return firstNumber / secondNumber
        } else if inputOperator == "%" {
            return firstNumber.truncatingRemainder(dividingBy: secondNumber)
        } else {
            print("적절하지 않은 연산자 입력입니다.")
            return 0 }
    }
}

func main() -> Double {
    print("사칙연산자 중 하나를 사용한 사칙연산 식을 입력하세요. 단 숫자와 연산기호는 공백으로 구분되어야 합니다.")
    
    let input = readLine()
    var x = 0.0, y = 0.0, op = ""
    
    if let input = input {
        let inputs = input.components(separatedBy: " ")
        
        guard !inputs[0].isEmpty else {
            print("입력 값이 없습니다. 다시 시도해주세요.")
            return 0
        }
        x = Double(inputs[0])!
        op = inputs[1]
        y = Double(inputs[2])!
    } // 입력으로 받은 "(정수) (연산자) (정수)" 형태의 문자열에서 각각을 추출해서 미리 선언해두었던 변수에 대입
    
    let calc = Calculator() // Calculator 객체 생성
    
    let result = calc.calculate(op, x, y) // result 변수에 Calculate 클래스 내부의 calculate 함수 실행 결과를 저장
    
    print(result) // 결과 출력
    
    print("방금 계산한 값에 추가적으로 연산을 진행하시겠습니까?")
    // 이 아래로는 아직 기능을 구현하지 않았음.
    // 연산 결과값에 추가적인 연산을 진행할 수 있는 기능 추가(?)예정
    
    return result
}

일단 과제로 나온 부분에서 LV.2(?)까지는 모두 구현했다.

내일 오전에 사칙연산과 나머지 연산을 모두 Calculator 클래스에서 빼갖고 추상화(?)하는 작업을 마저 진행해 봐야겠다.

profile
iOS 개발자가 되고 싶어요

0개의 댓글