Swift | programmers/Lv1.

[Swift] Lv.1 부족한 금액 계산하기

iOSDEv 2024. 3. 8. 07:53
부족한 금액 계산하기

 

문제

나의 풀이
import Foundation

func solution(_ price:Int, _ money:Int, _ count:Int) -> Int64{
    var answer:Int64 = -1
    var charge = 0
    for i in 0...count { //놀이기구 count만큼 타고 싶은 이용 금액
        charge += (price * i)
    }
    if money - charge >= 0 { 
        return 0
    } else {
        return Int64(charge - money)//소지 금액 - 내가 원하는 만큼 타야할 경우 이용료
    }
}

 

다른 사람의 풀이
import Foundation

func solution(_ price:Int, _ money:Int, _ count:Int) -> Int{
    //금액이 부족하지 않으면 0 을 return
    //값을 계산하는 공식
    return max((count + 1) * count / 2 * price - money , 0) 
}

 

import Foundation

func solution(_ price:Int, _ money:Int, _ count:Int) -> Int64{
    let totalPrice = price * (count * (count+1)/2)

    if money >= totalPrice {
        return 0
    }

    return Int64(totalPrice - money)
}

 

func solution(_ price:Int, _ money:Int, _ count:Int) -> Int64{
	// 횟수에 비례한 가격 계산
    let cost = (1...count).reduce(0) { $0 + price * $1 }
    //소지금액에서 금액을 계산하고 난 후 양수 음수 판별하고 값을 return
    return money - cost > 0 ? 0 : -Int64(money - cost)
}

 

import Foundation

func solution(_ price:Int, _ money:Int, _ count:Int) -> Int64{
	//고차함수 reduce를 사용해서 횟수에 비례하여 값을 계산한고 잔돈을 계산한후
    var answer:Int64 = Int64((1...count).reduce(0, +) * price - money)
    //양수면 값을 반환 음수일 때 0을 반환
    return answer >= 0 ? answer : 0 
}

 

 

프로그래머스

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

programmers.co.kr