Where who wants to meet someone

부족한 금액 계산하기 본문

프로그래머스 알고리즘 문제 기록/Lv. 1

부족한 금액 계산하기

Lust3r 2024. 5. 16. 00:42
728x90

문제

https://school.programmers.co.kr/learn/courses/30/lessons/82612

 

프로그래머스

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

programmers.co.kr

 

내 답안 / 다른 사람들의 답안

import Foundation

func solution(_ price:Int, _ money:Int, _ count:Int) -> Int64{
    let usageFee = (1...count).map { $0 * price }.reduce(0, +) - money

    return usageFee < 0 ? 0 : Int64(usageFee)
}

- 횟수만큼 곱한 값들을 더한 것이 이용금액이기 때문에 그 값에서 money를 뺀 값을 가지고 결과를 도출할 수 있었다.

 

// 풀이 1
import Foundation

func solution(_ price:Int, _ money:Int, _ count:Int) -> Int{
    return max((count + 1) * count / 2 * price - money , 0)
}

// 풀이 2
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)
}

- (count * (count + 1) / 2) 는 1부터 count까지의 합이고 여기에 price를 곱하면 총 이용금액이 됨을 알 수 있었다.

 

점수: +5

'프로그래머스 알고리즘 문제 기록 > Lv. 1' 카테고리의 다른 글

행렬의 덧셈  (0) 2024.05.19
문자열 다루기 기본  (0) 2024.05.16
문자열 내림차순으로 배치하기  (0) 2024.05.16
약수의 개수와 덧셈  (0) 2024.05.16
내적  (0) 2024.05.15