비전공자 개발일기

[SWIFT] Coding Test Practice Day 2 본문

SWIFT

[SWIFT] Coding Test Practice Day 2

HiroDaegu 2022. 11. 8. 14:06
728x90
SMALL

https://school.programmers.co.kr/

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

두 수의 나눗셈

func solution(_ num1: Int, _ num2: Int) -> Int {
    guard num1 >= 0 && num1 <= 100 && num2 >= 0 && num2 <= 100 else {
        return -1
    }
    let res: Int = Int(Float(num1) / Float(num2) * 1000)
    return res
}

solution(3, 2)
solution(7, 3)
solution(1, 16)

숫자 비교하기

func solution(_ num1: Int, _ num2: Int) -> Int {
    guard num1 >= 0 && num1 <= 10000 && num2 >= 0 && num2 <= 10000 else {
        return 0
    }
    if(num1 == num2) {
        return 1
    } else {
        return -1
    }
}

solution(2, 3)
solution(11, 11)
solution(7, 99)

분수의 덧셈 (⭐️반복 숙지 필요⭐️)

// 최소 공배수
// 최대 공약수 (유클리드 호제법)
// 기약분수 (약분이 더 이상 불가능한 분수)

func solution2(_ denum1: Int, _ num1: Int, _ denum2: Int, _ num2: Int) -> [Int] {
    guard (denum1 > 0 && denum1 < 1000), (num1 > 0 && num1 < 1000), (denum2 > 0 && denum2 < 1000), (num2 > 0 && num2 < 1000) else {
        return []
    }
    
    var x = denum1 * num2 + denum2 * num1
    var y = num1 * num2
    var res1: Int
    var res2: Int
    var res3: Int

    if x > y {
        res1 = x
        res2 = y
        while !(res1 % res2 == 0) {
            res3 = res1 % res2
            res1 = res2
            res2 = res3
        }
        x = x / res2
        y = y / res2
    }else if y > x {
        res1 = y
        res2 = x
        while !(res1 % res2 == 0) {
            res3 = res1 % res2
            res1 = res2
            res2 = res3
        }
        x = x / res2
        y = y / res2
    }else {
        res1 = x
        res2 = y
        x = x / res2
        y = y / res1
    }
    return [x,y]
}

solution2(1, 2, 3, 4)
solution2(9, 2, 1, 3)
solution2(9, 4, 1, 4)

배열 두배 만들기

// 다른 함수를 활용하여 축약 가능

func solution(_ numbers:[Int]) -> [Int] {
    var result: [Int] = []
    for i in [1,2,3,4,5] {
        guard i >= -10000 && i <= 10000 else { break }
        var doubleI = i * 2
        result.append(doubleI)
    }
    return result
}

solution([1,2,3,4,5])
728x90
LIST

'SWIFT' 카테고리의 다른 글

Timer App  (0) 2022.12.05
[SWIFT] Coding Test Practice Day 3  (0) 2022.11.09
[SWIFT] Coding Test Practice Day 1  (0) 2022.11.08
UP and Down Number Game in iOS APP  (0) 2022.11.05
UP and DOWN Number Game  (0) 2022.11.05